PermissionKit 权限申请库
用来快速方便实现 6.0+ 的权限授权,
GitHub地址:https://github.com/gybin02/PermissionKit
这个库可以节省不少代码量和时间
流程
- 检查是否拥有权限-> 有权限 -> 回调权限申请成功
- 没有权限是否需要弹窗请求-> 不需要 -> 是否是被设置为永不提醒
- 需要弹窗请求,监听是否点击确认-> 未点击 -> 权限申请被拒绝
- 点击确认主动申请权限,回调结果onRequestPermissionsResult
- 回调结果判断权限是否申请成功 -> 失败回调|成功回调
Gradle usage
- TODO,打包发布
How to Use
- 注册监听
//在Activity的系统回调里面注册 PermissionsManager
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionsManager.getInstance().notifyPermissionsChange(permissions, grantResults);
}
- 申请监听
//单例实现
PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, new PermissionsResultAction() {
@Override
public void onGranted() {
writeToStorage();
}
@Override
public void onDenied(String permission) {
Toast.makeText(MainActivity.this,
"Sorry, we need the Storage Permission to do that",
Toast.LENGTH_SHORT).show();
}
});
总结
- 减少很多代码量
- 代码比较清晰,单例调用,回调返回
- 耦合度低,比较少的侵入性