Android 6.0 动态权限申请
来源:互联网 发布:山寨币 冷钱包源码 编辑:程序博客网 时间:2024/06/07 06:50
Android 动态权限
从 Android 6.0 (API 23)开始使用动态的权限及(targetSdkVersion >=23 就需要动态的申请权限),使得系统更加安全,用户的信息也得到了更好的保护。
在android 6.0 中权限被分为两种:
1. Normal Permissions (正常权限)
2. Dangerous Permissions(危险权限)
其中危险权限又进行了分类,把所有的危险权限分为了九组。正常的权限是不需要动态的申请的,只有危险权限才需要动态的申请。
所有的危险权限:
Anroid 6.0 中权限问题中需要注意的两点
1. 由于权限API问题,我们的 Activity 最好是 AppCompatActivity 类型的,也就是说在你的 BaseActivity 需要继承 AppCompatActivity。
2. 权限是分组的,同一组的权限申请其中一个,同组的权限就全部都申请了。当然,不论是正常权限还是危险权限都必须在应用的 Manifest.xml 中声明。
使用开源的 EasyPermissions 进行动态的申请
GitHub 地址: EasyPermissions 这个项目是GoogleSamples
配置
在 app 层的 build.gradle 中dependencies { compile 'pub.devrel:easypermissions:0.4.2'}
使用
举栗子
在Activity(Fragment)中都可以使用private void checkPermissions() { //每一次在需要使用到权限的时候都要进行检查权限是否开启,虽然之前是开启的,但是用户有可能关闭权限 //这里是需要申请的权限 String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}; if(EasyPermissions.hasPermissions(this,perms)){ //权限已经申请完成,执行任务 choosePhoto(); }else{ EasyPermissions.requestPermissions(this,"需要访问你的相册",RC_WRITE_READ_EXTERNAL_STORAGE,perms); //RC_WRITE_READ_EXTERNAL_STORAGE 是requestCode }}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // Forward results to EasyPermissions EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);}@Overridepublic void onPermissionsDenied(int requestCode, List<String> perms) { if (EasyPermissions.somePermissionPermanentlyDenied(this,perms)){ new AppSettingsDialog.Builder(this).build().show(); }}//如果选择了,取消权限,再次检查时会进入onActivityResult@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE: Toast.makeText(this,"您需要开启访问相册的权限才能选择图片,请进入设置中开启访问权限",Toast.LENGTH_SHORT).show(); break; } }
至此,已经可以进行动态的权限申请了。
转载请标明 MartinDung http://blog.csdn.net/qq_30321715/article/details/78132367 谢谢。
阅读全文
0 0
- Android 6.0 动态申请权限
- android 6.0权限动态申请
- Android 6.0 动态权限申请
- Android 6.0权限动态申请
- Android 6.0 动态权限申请
- android 6.0 动态权限申请
- Android 6.0 动态权限申请
- Android 6.0动态权限申请
- Android 6.0 动态权限申请
- Android 6.0 动态申请权限
- Android 6.0权限动态申请
- Android 6.0 动态申请权限
- Android 6.0动态权限申请
- Android 6.0动态权限申请
- android 6.0动态申请权限
- Android 6.0 动态权限申请
- Android 6.0动态申请权限
- Android 6.0 动态权限申请
- Opencv如何使用dnn读取caffemodel进行识别
- OSX anaconda虚拟环境py27,安装编译MySQLdb出现fatal error: limits.h: No such file or directory
- GFIC 2017-亚太CDN年度盛典—传统云业务与CDN融合发展
- Contiguous Array问题及解法
- POJ 1208 The Blocks Problem 链表
- Android 6.0 动态权限申请
- 微信网页授权那些事
- “检测到有潜在危险的 Request.Form 值”非关闭验证的解决办法
- 怎么样才能cad快速看图操作
- Python 高级用法
- mybatis入库的Handler解读
- leetcode: 226. Invert Binary Tree
- WIN7环境安装kali双系统
- Android开发笔记: Android studio使用Log打印信息到终端