Android 6.0 动态权限申请
2017-05-05 本文已影响102人
Senierr
Android 6.0+ 动态权限申请库 PermissionManager
基本用法
注意:使用此库,minSdkVersion
必须 >= 11
1. 导入仓库
maven { url 'https://jitpack.io' }
2. 添加依赖
compile 'com.github.senierr:PermissionManager:1.0.2'
3. 检查权限
PermissionManager
.build(activity)
.permissions(String... permissions)
.check(new CheckCallback() {
...
});
没了?对,没了!就是这么简单!
回调说明
/**
* 所有请求权限通过
*/
public abstract void onAllGranted();
/**
* 权限未通过
*
* @param deniedWithNextAskList 拒绝,下次询问的权限列表
* @param deniedWithNoAskList 拒绝,不再询问的权限列表
*/
public void onDenied(List<String> deniedWithNextAskList, List<String> deniedWithNoAskList) {}
其他说明
关于6.0动态权限申请相关的文章很多,这里就不多介绍了。
这里简单介绍下使用中的具体问题:
1. 何时申请
- 具体使用某功能时;
- 引导页开始时;
- 具体页面开始时;
- APP切换至前台时;
- ......
根据功能权限的重要度,选择合适的时机进行申请。
2. 应用运行中,权限被改变
这一情景不多,但也会出现:
应用运行过程中,用户Home键,切换至设置或其他,禁止了某项权限。用户又切回了应用,发现一些功能无法运行。
这是一件比较尴尬的事...
还好,Google考虑到了这一情景,并对其进行了处理:
当应用运行中被禁止了某权限,此应用进程会被杀除,并保存Task。当用户重新切换至此应用时,会恢复Task列表。
简而言之,当你的应用某权限被禁止,并重新切回后,所有Task页面生命周期会重新执行一遍。
所以,咳咳咳...少年,回到问题1,选择合适的时机进行申请吧!