在运行时请求权限从Android 6.0(API级别23)开始,用户权限授予应用程序在应用程序运行时,当他们安装程序。这种方法简化了应用程序的安装过程,因为用户不需要安装或更新应用程序时授予权限。这也给了用户更多的控制应用程序的功能;例如,一个用户可以选择给相机应用程序访问相机而 ...
在运行时请求权限
从Android 6.0(API级别23)开始,用户权限授予应用程序在应用程序运行时,当他们安装程序。这种方法简化了应用程序的安装过程,因为用户不需要安装或更新应用程序时授予权限。这也给了用户更多的控制应用程序的功能;例如,一个用户可以选择给相机应用程序访问相机而不是设备的位置。用户可以随时撤销权限,通过将应用程序的设置屏幕。
系统权限分为两类,普通和危险:
- 正常的权限不直接用户的隐私风险。如果你的应用程序清单列出了一个正常的权限,系统自动授予许可。
- 危险的权限可以给应用程序访问用户的机密数据。如果你的应用程序清单列出了一个正常的权限,系统自动授予许可。如果你列出一个危险的许可,用户必须显式地给应用程序审批。
在所有版本的Android系统,您的应用程序需要申报的正常和危险的权限需要在其应用程序清单,如声明中所述的权限。然而,宣言的影响是不同的根据系统版本和SDK应用程序的目标水平:
- 如果设备运行Android 5.1或更低,或应用程序的目标SDK是22或更低:如果你在清单列表一个危险的许可,用户授予权限安装应用程序时,如果他们不授予权限,系统没有安装应用程序。
- 如果设备运行Android 6.0或更高版本,和你的应用程序的目标SDK是23或更高:应用列表的权限清单,它必须要求每个危险的权限需要在应用程序运行时。用户可以授予或拒绝每一个权限,应用程序可以继续运行能力有限,即使用户拒绝权限请求。
注意:从Android 6.0(API级别23),用户可以在任何时候从任何应用程序撤销权限,即使应用程序API级别较低的目标。你应该测试你的应用程序,以确认它正确行为的时候丢失了一个需要许可,无论什么API级别应用程序的目标。
这节课描述了如何使用Android支持库检查,和请求,权限。Android 6.0的Android框架提供了类似的方法(API级别23)。然而,使用支持库比较简单,因为应用程序不需要检查哪个版本的Android上运行之前调用的方法。
检查权限
如果你的应用需要一个危险的许可,你必须检查你是否有权限每次执行一个操作,要求许可。用户总是可以撤销许可,所以即使相机昨天使用的应用程序,它不能假设它今天仍有该权限。
检查如果你有权限,调用ContextCompat.checkSelfPermission()方法。例如,这个代码片段展示了如何检查活动日历上写权限:
// Assume thisActivity is the current activityint permissionCheck = ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_CALENDAR);
原标题:Android 6.0 运行时权限处理
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。