我的应用程序包含联系人列表和相机,我在 Android Manifest 中设置的权限。该应用程序正常运行API级别21及以下。
当我从 Play商店在 Marshmallow API级别23安装应用程序时,在安装时它没有询问权限,当我办理登机手续时设置应用拒绝的所有权限。
因此,当我在 Marshmallow 中打开应用程序时,应用程序崩溃了。
任何人都可以告诉我如何在 Marshmallow 中获得许可而不会崩溃
答案 0 :(得分:2)
你需要在棉花糖中寻求许可,没有其他办法可以解决这个问题。
检查权限,您可以使用此
checkSelfPermission(Manifest.permission.READ_CONTACTS);
如果用户给出了权限,它将返回0,否则将返回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
如果您想在棉花糖前设备上提供支持,您还需要使用
ContextCompat.checkSelfPermission()
ActivityCompat.requestPermissions()
休息所有事情都和我上面提到的一样。