https://github.com/android-notes/onekeyperm
一键申请Android权限,不依赖任何业务Activity。小巧、简约、强悍
https://github.com/android-notes/onekeyperm
android permission permission-android
Last synced: 6 months ago
JSON representation
一键申请Android权限,不依赖任何业务Activity。小巧、简约、强悍
- Host: GitHub
- URL: https://github.com/android-notes/onekeyperm
- Owner: android-notes
- License: mit
- Created: 2018-01-09T08:51:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-08-10T14:26:21.000Z (about 5 years ago)
- Last Synced: 2023-03-06T14:53:27.996Z (over 2 years ago)
- Topics: android, permission, permission-android
- Language: Java
- Homepage:
- Size: 151 KB
- Stars: 61
- Watchers: 1
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OneKeyPerm
一键申请Android权限### OneKeyPerm接入说明
OneKeyPerm不依赖任何业务Activity,支持多进程,只需一句静态代码就可以了例如
```java
申请权限被拒绝后 不会 自动开启设置页面让用户手动开启权限OneKeyPerm.request(application, Manifest.permission.CAMERA, "您需要允许相机权限,否则无法使用扫码功能", new OneKeyPerm.OnPermResultListener() {
@Override
public void onPermResult(String perm, boolean isGrant) {
Toast.makeText(MainActivity.this, "请求相机权限 " + isGrant, Toast.LENGTH_SHORT).show();
}
});
```或者
```java
申请权限被拒绝后 会 自动开启设置页面让用户手动开启权限OneKeyPerm.request(application, Manifest.permission.CAMERA, "您需要允许相机权限,否则无法使用扫码功能", new OneKeyPerm.OnPermResultListener() {
@Override
public void onPermResult(String perm, boolean isGrant) {
Toast.makeText(MainActivity.this, "请求相机权限 " + isGrant, Toast.LENGTH_SHORT).show();
}
},true);
```### 原理分析
* 每次通过context启动透明Activity`(PermissionActivity)`请求权限
* 当权限被拒绝后启动另一个透明Activity `(WatchAuthorizationActivity)`,在`WatchAuthorizationActivity`中再次启动应用详情设置Activity,然后在`WatchAuthorizationActivity`的`onActivityResult`方法中再次检查是否已经手动授权,并通过Binder(解决多进程问题)通知调用者
备注:收回授权后Android会重启App