最近我看到郭霖大佬又出了个框架~~PermissionX,大家知道,Android运行时权限的代码时真的太繁琐了。PermissionX时一个真正用于简化Android运行时权限处理的库,这个是真的方便
github地址:https://github.com/guolindev/PermissionX
首先引入

dependencies {    implementation 'com.permissionx.guolindev:permissionx:1.3.0'}

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.permissionx.app"><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.CALL_PHONE" /></manifest>

然后使用以下代码就行

PermissionX.init(activity)    .permissions(Manifest.permission.READ_CONTACTS, Manifest.permission.CAMERA, Manifest.permission.CALL_PHONE)    .request { allGranted, grantedList, deniedList ->        if (allGranted) {            Toast.makeText(this, "All permissions are granted", Toast.LENGTH_LONG).show()        } else {            Toast.makeText(this, "These permissions are denied: $deniedList", Toast.LENGTH_LONG).show()        }    }

假如用户拒绝了某个权限,在下次申请之前,我们最好弹出一个对话框来向用户解释申请这个权限的原因

PermissionX.init(activity)    .permissions(Manifest.permission.READ_CONTACTS, Manifest.permission.CAMERA, Manifest.permission.CALL_PHONE)    .onExplainRequestReason { scope, deniedList ->        scope.showRequestReasonDialog(deniedList, "Core fundamental are based on these permissions", "OK", "Cancel")    }    .request { allGranted, grantedList, deniedList ->        if (allGranted) {            Toast.makeText(this, "All permissions are granted", Toast.LENGTH_LONG).show()        } else {            Toast.makeText(this, "These permissions are denied: $deniedList", Toast.LENGTH_LONG).show()        }    }

更多相关文章

  1. Eclipse+CDT+GDB调试Android(安卓)NDK程序
  2. Android自动化测试解决方案
  3. 应用程序文件Android安全分析挑战:运行时篡改Dalvik字节码
  4. Android获取定位权限,获取设备所在的经纬度
  5. 隐私策略更新 | Android(安卓)11 应用兼容性适配
  6. System Permissions --1.4
  7. android中通过代码实现文件权限修改(chmod)
  8. 一分钟帮你提升Android(安卓)studio 编译速度
  9. 使用EasyPermissions高效处理权限

随机推荐

  1. Android HTTP
  2. Java代码设置Android全屏
  3. Could not find SDK_Root\tools\adb.ex
  4. android上实现蓝牙透传时遇到点问题
  5. android:layout_weight 属性对于组件长度
  6. Android获取当前网络状态
  7. Android清单文件属性大全
  8. Android:控件AutoCompleteTextView 自动提
  9. android webview web里面的数据透传到jav
  10. android 读取SQLite android could not o