- **
private void initPermissions() {
ActivityCompat.requestPermissions(this, permissions, 1);
}
String[] permissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
- implementation ‘com.github.getActivity:XXPermissions:13.5’
导入这个库(记得添加jetpack:“ maven { url ‘https://jitpack.io’ }
”)
如果有报错,在‘gradle.properties’里添加:
android.useAndroidX=true
android.enableJetifier=true
这两行。
然后:
private void requestPermissions() {
XXPermissions.with(MainActivity.this)
.permission(Permission.READ_EXTERNAL_STORAGE,
Permission.WRITE_EXTERNAL_STORAGE);
}
或者:
**
XXPermissions.with(act)
// 申请单个权限
// 申请多个权限
.permission(
Permission.ACCESS_FINE_LOCATION,
Permission.ACCESS_COARSE_LOCATION,
Permission.MANAGE_EXTERNAL_STORAGE
)
.permission(Permission.Group.BLUETOOTH)
// 设置权限请求拦截器(局部设置)
//.interceptor(new PermissionInterceptor())
// 设置不触发错误检测机制(局部设置)
//.unchecked()
.request(object : OnPermissionCallback {
override fun onGranted(permissions: MutableList<String>, all: Boolean) {
if (all) {
callBack?.invoke(true, permissions)
}
}
override fun onDenied(permissions: MutableList<String>, never: Boolean) {
if (never) {
callBack?.invoke(false, permissions)
}
}
})
***
**