Android 权限检查与申请实现
定义权限数组
public static final String[] PERMISSIONS_READ = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
判断权限集合
public static boolean lacksPermissions(Context context, String[] permissions) {
for (String permission : permissions) {
if (lacksPermission(context, permission)) {
return true;
}
}
return false;
}
private static boolean lacksPermission(Context context, String permission) {
return ContextCompat.checkSelfPermission(context, permission) ==
PackageManager.PERMISSION_DENIED;
}
Activity 中使用
if (lacksPermissions(this, PERMISSIONS_READ)) {
ActivityCompat.requestPermissions(this, PERMISSIONS_READ, 0);
} else {
}
权限设置回调
@Override
{
.onRequestPermissionsResult(requestCode, permissions, grantResults);
(requestCode == ) {
( ; i < permissions.length; i++) {
(grantResults[i] != PackageManager.PERMISSION_GRANTED) {
showPermissions();
;
}
}
}
}