Android-6.0权限批量检查申请
Android6.0之后需要动态进行申请权限,下面记录一下,简单的批量检查权限的方法。
在Activity中调用检查权限的方法,并重现权限申请结果回调。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CheckPermission();// 检查权限
}
/*
* 检查权限
*/
private void CheckPermission() {
if (Build.VERSION.SDK_INT >= 23) {
String[] perms = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_LOGS,
Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS,
Manifest.permission.READ_SMS,
"android.permission.WRITE_SMS",
Manifest.permission.WRITE_CALL_LOG,
Manifest.permission.SEND_SMS,
Manifest.permission.RECEIVE_SMS,
Manifest.permission.RECEIVE_MMS,
Manifest.permission.READ_CONTACTS,
Manifest.permission.WRITE_CONTACTS,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.INTERNET,
"org.simalliance.openmobileapi.SMARTCARD"};
for (String p : perms) {
int f = ContextCompat.checkSelfPermission(TestActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE);
if (f != PackageManager.PERMISSION_GRANTED) {
requestPermissions(perms, PERM_REQUEST_CODE);
break;
}
}
}
}
/**
* 在activity中进行重写
**/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == PERM_REQUEST_CODE) {
if (grantResults.length > 0) {
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
TestActivity.this.finish();
}
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}