首页 > 学院 > 开发设计 > 正文

6.0后权限的处理

2019-11-06 09:35:13
字体:
来源:转载
供稿:网友

在安卓6.0后我们获取一些手机的权限不仅需要在AndroidMainfist中配置,还需要我们在代码中动态的去获取一下相应的权限。在软件开发版本没有适配6.0的时候运行在安卓6.0的手机上是不会崩的,因为我们开发对应的版本没有适配6.0,它仍然只需要在配置文件中添加权限即可;但是当版本适配到了6.0那么我们就需要到代码中获取权限,运行在低于6.0的手机版本时不执行代码添加权限的方法;只会在大于或等于6.0时才会调用; 那么总结一下那些权限在6.0后需要在代码中动态的申请呢? 1、读写的权限

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //申请WRITE_EXTERNAL_STORAGE权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST_CODE); }

2、拨打电话的权限

if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE); }

3、手机相机的权限

if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { //申请WRITE_EXTERNAL_STORAGE权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1);}

4、定位的权限

Manifest.permission.access_COARSE_LOCATIONManifest.permission.ACCESS_FINE_LOCATION

请求的方式就是判断当前的版本是否是在安卓6.0以后,再判断是否有相应的权限,如果没有相应的权限那么就动态申请权限。这个套路也就是这样,那么到底有多少的权限我们是需要在代码中动态的添加的:

身体传感器 日历 摄像头 通讯录 地理位置 麦克风 电话 短信 存储空间 大致也就是这些了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表