Android6.0运行时权限处理-超简单封装

之前调试的时候,出现了一个问题,就是当我打开二维码扫描界面的时候,对于一部分手机一直不会出现那个扫描框,这点我也很是郁闷,这不好整啊,毕竟二维码界面是用的别人的,怎么改啊?这个时候我分析了一下原因,最后知道只有部分6.0的手机才会出现这种情况,那么这就简单了。下面我就对关于6.0手机动态申请安全权限做一下讲解:

对于6.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就只能默认接受其一些不必要的权限,而在6.0以后,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝。但是这些权限也是有限制的,比如说只是针对一些安全权限做动态授权处理,如打开手机摄像头、打开联系人、打开录音等等,这些涉及到用户安全权限的时候,就要我们开发者手动去请求用户打开权限。废话就到这里,下面看具体实现。

1、检查权限:
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
}else{
//
}
ContextCompat.checkSelfPermission,主要用于检测某个权限是否已经被授予,方法返回值为PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED。当返回DENIED就需要进行申请授权了。

2、申请权限:
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
第二个参数是需要申请的权限的字符串数组,第三个参数为请求码,主要用于回调的时候检测。可以从方法名requestPermissions以及第二个参数看出,是支持一次性申请多个权限的,系统会通过弹出对话框一个个的询问用户是否授权。

3、权限的申请回调:
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值