Android 6.0中怎么动态获取权限
Android 6.0中怎么动态获取权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
哪些权限需要申请
Android目前所有权限大可分为两种,一种是普通权限,另一种则是危险权限。普通权限指的是不会直接威胁到用户的安全和隐私的权限,这些权限的申请,系统会自动帮我们申请。危险权限则是可能会对用户的隐私以及设备的安全性造成威胁的权限。这些权限例如获取联系人信息、获取设备的地理位置、打开摄像头等。对于这危险权限,在Android 6.0之后必须由用户自行判断管理。如果用户授权,应用程序才会具有这相应的功能。
下图为危险权限列表,一共9组24个权限。 需要注意的一点
: 如果权限组中有个权限得到用户的授权,那么该权限所在组中所有其他权限也会同时被授权。
0x02 实现
我自己基于samples-23_r02\system\RuntimePermissions\实例代码,写出了一个demo。demo是功能是动态获取摄像头权限,如果用户同意授权,则获取摄像头预览画面。
1)在AndroidMesifest.xml文件中添加摄像头权限
2)使用ActivityCompat.checkPermission()进行判断需要用到的权限是否已经经过用户授权这个方法第一个参数是上下文,第二个参数是具体的权限名。
代码可以这样写:
我在demo里面已经把权限抽取出来,封装在一个工具内中。
在MainActivity中,判断权限:
在PermissionUtil中,具体实现:
3)如果没有获得权限,就需要调用ActivityCompat.requestPermissions()方法进行申请权限,并且实现onRequestPermissionsResult()方法。
requestPermissions()一共有3个参数,第1个参数是Activity的实例,第2个参数是一个String数组,第2个参数是请求码,可以自己自行定义,只要确保是唯一值即可。
在demo中,我为了能够兼容一次申请多个权限,自己实现代码如下:
onRequestPermissionsResult()方法的具体实现:
看完上述内容,你们掌握Android 6.0中怎么动态获取权限的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!