Skip to content

Repository files navigation

OneKeyPerm

一键申请Android权限

OneKeyPerm接入说明

OneKeyPerm不依赖任何业务Activity,支持多进程,只需一句静态代码就可以了

例如

申请权限被拒绝后不会自动开启设置页面让用户手动开启权限OneKeyPerm.request(application, Manifest.permission.CAMERA, "您需要允许相机权限否则无法使用扫码功能", newOneKeyPerm.OnPermResultListener() {
@OverridepublicvoidonPermResult(Stringperm, booleanisGrant) {
Toast.makeText(MainActivity.this, "请求相机权限 " + isGrant, Toast.LENGTH_SHORT).show();
}
});

或者

申请权限被拒绝后自动开启设置页面让用户手动开启权限OneKeyPerm.request(application, Manifest.permission.CAMERA, "您需要允许相机权限否则无法使用扫码功能", newOneKeyPerm.OnPermResultListener() {
@OverridepublicvoidonPermResult(Stringperm, booleanisGrant) {
Toast.makeText(MainActivity.this, "请求相机权限 " + isGrant, Toast.LENGTH_SHORT).show();
}
},true);

原理分析

  • 每次通过context启动透明Activity(PermissionActivity)请求权限

  • 当权限被拒绝后启动另一个透明Activity (WatchAuthorizationActivity),在WatchAuthorizationActivity中再次启动应用详情设置Activity,然后在WatchAuthorizationActivityonActivityResult方法中再次检查是否已经手动授权,并通过Binder(解决多进程问题)通知调用者

备注:收回授权后Android会重启App

About

一键申请Android权限,不依赖任何业务Activity。小巧、简约、强悍

Topics

Resources

Stars

66 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages