Android造轮子之6.0运行时权限检查

PermissionsChecker

一个帮助你完成 Android M 运行时权限检查的库

第一次造轮子,有人说程序员之所以造轮子,是因为某个问题戳到了他的痛点

欢迎大家来使用和测试,有不足的地方还希望大家可以提出来,我都会虚心改进

轮子大家测!只需几行代码完成 Android M 运行时权限检查,欢迎提 issue 和我交流

Github地址 :https://github.com/Werb/PermissionsCheckerSample

Screenshot

《Android造轮子之6.0运行时权限检查》 PermissionsChecker
《Android造轮子之6.0运行时权限检查》 PermissionsChecker

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

Apache2.0

最后说几句

我在 Github 上开了仓库,想要收集一些有趣的文章,可以是任何方面
仓库地址 :dev-note
大家可以以 issue 的方式来分享一些有趣的文章,贴链接就好!好的文章我会收录到仓库中!
在开源的世界中,我们一起进步!

    原文作者:wanbo_
    原文地址: https://www.jianshu.com/p/b2320ebf8cd7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞