Android:在marshmallow中拒绝权限导致崩溃

时间:2016-02-03 12:23:46

标签: android permissions android-permissions android-6.0-marshmallow user-permissions

我的应用程序包含联系人列表相机,我在 Android Manifest 中设置的权限。该应用程序正常运行API级别21及以下。

当我从 Play商店 Marshmallow API级别23安装应用程序时,在安装时它没有询问权限,当我办理登机手续时设置应用拒绝的所有权限。

因此,当我在 Marshmallow 中打开应用程序时,应用程序崩溃了。

任何人都可以告诉我如何在 Marshmallow 中获得许可而不会崩溃

1 个答案:

答案 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()

休息所有事情都和我上面提到的一样。