# PermissionsChecker
[![License](https://img.shields.io/badge/license-Apache%202-green.svg)](https://github.com/Werb/PermissionsCheckerSample/blob/master/LICENSE)
[![Download](https://api.bintray.com/packages/werbhelius/maven/permissionschecker/images/download.svg) ](https://bintray.com/werbhelius/maven/permissionschecker/_latestVersion)
一个帮助你完成 Android M 运行时权限检查的库。
[English Version](https://github.com/Werb/PermissionsCheckerSample/blob/master/README.md)
## Screenshot
## Dependency
#### Gradle
```
compile 'com.werb.permissionschecker:permissionschecker:last-version'
```
#### Maven
```
com.werb.permissionschecker
permissionschecker
last-version
pom
```
## Usage
* 第一步:在需要相关权限的地方定义权限数组(同时在 AndroidManifest.xml 中声明)
```
static final String[] PERMISSIONS = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE
};
```
* 第二步:初始化 PermissionsChecker
```
permissionChecker = new PermissionChecker(this); // 初始化,必需
permissionChecker.setTitle(getString(R.string.check_info_title)); // 权限拒绝后的提示,非必需
permissionChecker.setMessage(getString(R.string.check_info_message)); // 不写会有默认值,如上方截图所示
```
* 第三步:判断权限
```
// check if lack Permissions
if (permissionChecker.isLackPermissions(PERMISSIONS)) {
permissionChecker.requestPermissions();
} else {
// 执行你的相关操作
}
```
* 第四步:权限回调
```
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case PermissionChecker.PERMISSION_REQUEST_CODE:
if (permissionChecker.hasAllPermissionsGranted(grantResults)) {
// 执行你的相关操作
} else {
// 权限拒绝后的提示
permissionChecker.showDialog();
}
break;
}
}
```
## Bug
部分国产手机修改了权限设置,若有异常情况出现,请及时提 issue 联系我 ,谢谢
#### 已知问题
这里会收集一些已知问题,若有很好的处理方法,也请及时提 issue 联系我
* 申请 android.permission.CALL_PHONE 时,当遇到 intent.setAction(Intent.ACTION_CALL) 小米手机会走自己的权限提示
## License
[Apache2.0](https://github.com/Werb/PermissionsCheckerSample/blob/master/LICENSE)