未显示WRITE_EXTERNAL_STORAGE的权限对话框

时间:2018-11-07 15:05:32

标签: android permissions

enter image description here我想使用DownloadManager下载文件。并且DownloadManager想要获得WRITE_EXTERNAL_STORAGE的许可。 我在WRITE_EXTERNAL_STORAGE中包含了AndroidManifest.xml权限。此外,我尝试在运行时获得此许可。

请求权限之后立即调用

onRequestPermissionsResult回调。没有显示请求权限弹出窗口。

但是,grantResult[0]onRequestPermissionsResult的值为 PERMISSION_DENIED 。但是“权限弹出式窗口”没有显示。

我这样检查权限:

public  boolean isStoragePermissionGranted() {
    if (Build.VERSION.SDK_INT >= 23) {
        if (checkSelfPermission(getContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                == PackageManager.PERMISSION_GRANTED) {
            Log.v(TAG,"Permission is granted");
            return true;
        } else {

            Log.v(TAG,"Permission is revoked");
            ActivityCompat.requestPermissions(getActivity(), new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_PERMISSION_REQUEST_CODE);
            return false;
        }
    }
    else {
        Log.v(TAG,"Permission is granted");
        return true;
    }
}

这是权限请求的回调:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
        case WRITE_EXTERNAL_PERMISSION_REQUEST_CODE: {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                downloadFile();
            }
            break;
        }
    }
}

当我尝试获得READ_EXTERNAL_STORAGE许可时,我可以获取该许可,但对WRITE_EXTERNAL_STORAGE许可却无效。

我也尝试过 @MetaSnarf's solution.但是什么都没有改变。

您对这种情况有任何想法吗?

1 个答案:

答案 0 :(得分:3)

您的一个依赖项可能导致该问题。您可以在清单中替换权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" />