权限分为普通权限和危险权限,其中危险权限有9组24个。
在Android 6以上的系统中执行授权,如果该权限属于危险权限,那么此时要进行运行时权限处理,如果不是危险权限,则只要在AndroidManifest.xml文件中添加一下权限声明即可。
注意:一旦授予APP某个危险权限,则该权限所在权限组的其他危险权限一并被授予。
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, 1)
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull @org.jetbrains.annotations.NotNull String[] permissions,
@NonNull @org.jetbrains.annotations.NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
readContacts();
} else {
Toast.makeText(this, "you denied the permission", Toast.LENGTH_LONG).show();
}
break;
default:
}
}
原文:https://www.cnblogs.com/ngy-liupeng/p/15167886.html