您的位置:首页 > 移动开发 > Android开发

Android6.0运行时权限处理(项目中使用到的一种形式,没有使用第三方库)

2016-10-25 09:53 344 查看
相信大家都知道Android6.0之后的权限申请跟之前的版本有一个很大的差别,那就是任何危险权限都必须经过用户的手动选择是否接受来做相应的操作,而Android6.0之前安装应用的过程中是默认选中的。也就是说你要安装这个应用那就必须默认许可这些权限。所以在项目中遇到使用权限的时候要注意一下区分版本。6.0以下可以直接使用,6.0以上需要代码来实现权限申请Dailog的弹出。

下面以访问Storage权限为例来详细解释一下Android6.0的运行时权限:

需求:点击一个按钮实现在sd卡创建一个文件的功能

首先AndroidManifest中必须要已经写入了权限这个是必须的

然后我们进行Android系统版本的检查,如果大于Android6.0则执行申请权限操作,否则直接创建文件代码如下



当满足 去申请权限的条件时系统会弹出请求权限的Dialog提示,然后用户可以选择是否接受权限请求,当用户点击接受或者不接受都会产生一个回调

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
doNext(requestCode,grantResults);
}


然后我们重写此方法,通过requestCode来判断是哪一个权限申请的回调,然后我们执行了doNext方法(doNext只是我们自己写的一个方法名字而已)然后doNext代码如下



通过以上代码可以看出,if条件中也就是说用户选择了接受权限,然后我们执行了创建文件的方法。else也就是用户拒绝了不用做任何操作,如果用户要使用这个功能就必须接受这个权限所以下次点击会继续弹出权限选择框
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐