Android:棉花糖中的权限被拒绝导致崩溃
Android: Permissions deny in marshmallow cause crash
我有一个应用程序有联系人列表和相机,我在[=33]中设置了这两个权限=] Manifest。应用程序在 API 级别 21 及以下运行良好。
当我在 Marshmallow API 级别 23 中从 Play 商店 安装应用程序时,在安装它时没有询问权限,当我签入设置应用程序拒绝的所有权限时。
出于这个原因,当我在 Marshmallow 中打开应用程序时,应用程序崩溃了。
谁能告诉我如何在 Marshmallow 中授予权限而不崩溃
你需要在 marshmallow 中请求许可,没有其他方法可以解决这个问题。
要检查权限,您可以使用此
checkSelfPermission(Manifest.permission.READ_CONTACTS);
如果用户授予权限,它将 return 0 否则将 return 1.
如果没有给予许可,请向用户征求许可
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
10);
并检查用户是否授权
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 10:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
Toast.makeText(MainActivity.this, "READ_CONTACTS granted", Toast.LENGTH_SHORT)
.show();
} else {
// Permission Denied
Toast.makeText(MainActivity.this, "READ_CONTACTS Denied", Toast.LENGTH_SHORT)
.show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
有关详细信息,请参阅 this
如果你想在 pre-marshmallow 设备中提供支持,你还需要使用
ContextCompat.checkSelfPermission()
ActivityCompat.requestPermissions()
其余的一切都和我上面提到的一样。
我有一个应用程序有联系人列表和相机,我在[=33]中设置了这两个权限=] Manifest。应用程序在 API 级别 21 及以下运行良好。
当我在 Marshmallow API 级别 23 中从 Play 商店 安装应用程序时,在安装它时没有询问权限,当我签入设置应用程序拒绝的所有权限时。
出于这个原因,当我在 Marshmallow 中打开应用程序时,应用程序崩溃了。
谁能告诉我如何在 Marshmallow 中授予权限而不崩溃
你需要在 marshmallow 中请求许可,没有其他方法可以解决这个问题。
要检查权限,您可以使用此
checkSelfPermission(Manifest.permission.READ_CONTACTS);
如果用户授予权限,它将 return 0 否则将 return 1.
如果没有给予许可,请向用户征求许可
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
10);
并检查用户是否授权
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 10:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
Toast.makeText(MainActivity.this, "READ_CONTACTS granted", Toast.LENGTH_SHORT)
.show();
} else {
// Permission Denied
Toast.makeText(MainActivity.this, "READ_CONTACTS Denied", Toast.LENGTH_SHORT)
.show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
有关详细信息,请参阅 this
如果你想在 pre-marshmallow 设备中提供支持,你还需要使用
ContextCompat.checkSelfPermission()
ActivityCompat.requestPermissions()
其余的一切都和我上面提到的一样。