PermissionsChecker
一个帮助你完成 Android M 运行时权限检查的库
第一次造轮子,有人说程序员之所以造轮子,是因为某个问题戳到了他的痛点
欢迎大家来使用和测试,有不足的地方还希望大家可以提出来,我都会虚心改进
轮子大家测!只需几行代码完成 Android M 运行时权限检查,欢迎提 issue 和我交流
Github地址 :https://github.com/Werb/PermissionsCheckerSample
Screenshot
Dependency
Gradle
compile 'com.werb.permissionschecker:permissionschecker:last-version'
版本查看请移步 GitHub
Maven
<dependency>
<groupId>com.werb.permissionschecker</groupId>
<artifactId>permissionschecker</artifactId>
<version>last-version</version>
<type>pom</type>
</dependency>
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
最后说几句
我在 Github 上开了仓库,想要收集一些有趣的文章,可以是任何方面
仓库地址 :dev-note
大家可以以 issue 的方式来分享一些有趣的文章,贴链接就好!好的文章我会收录到仓库中!
在开源的世界中,我们一起进步!