运行时权限方案:PermissionX
16lz
2021-01-26
最近我看到郭霖大佬又出了个框架~~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() } }
更多相关文章
- Eclipse+CDT+GDB调试Android(安卓)NDK程序
- Android自动化测试解决方案
- 应用程序文件Android安全分析挑战:运行时篡改Dalvik字节码
- Android获取定位权限,获取设备所在的经纬度
- 隐私策略更新 | Android(安卓)11 应用兼容性适配
- System Permissions --1.4
- android中通过代码实现文件权限修改(chmod)
- 一分钟帮你提升Android(安卓)studio 编译速度
- 使用EasyPermissions高效处理权限