【问题标题】:Permission dialog is not being shown android marshmallow没有显示权限对话框android marshmallow
【发布时间】:2015-10-06 19:41:19
【问题描述】:

我使用的是 nexus 6 android 6.0,仅针对 WRITE_EXTERNAL_STORAGE 权限对话框未显示其他危险权限。

final private int REQUEST_CODE_ASK_PERMISSIONS = 123;

@TargetApi(Build.VERSION_CODES.M)
private void insertDummyContactWrapper() {
    int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);

    // Here, thisActivity is the current activity
    if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {

        // Should we show an explanation?
        if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

            // Show an expanation to the user *asynchronously* -- don't block
            // this thread waiting for the user's response! After the user
            // sees the explanation, try again to request the permission.

        } else {

            // No explanation needed, we can request the permission.

            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    110);

            // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
            // app-defined int constant. The callback method gets the
            // result of the request.
        }
    }
}

构建:

defaultConfig {
        applicationId "com.example.application"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

清单:

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"

【问题讨论】:

标签: android android-6.0-marshmallow


【解决方案1】:

仅针对 WRITE_EXTERNAL_STORAGE 权限对话框未显示其他危险权限

您的另一个dangerous 权限是READ_EXTERNAL_STORAGE。当我们请求权限并检查权限时,在 Android 6.0 UI 中,用户授予(或拒绝)权限groups。 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 在同一组中。

因此,如果用户之前批准了您对READ_EXTERNAL_STORAGE 的请求,那么在您调用checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE); 时,您将已经拥有WRITE_EXTERNAL_STORAGE。

【讨论】:

    猜你喜欢
    • 2016-03-18
    • 1970-01-01
    • 2015-10-30
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    相关资源
    最近更新 更多