我想使用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.但是什么都没有改变。
您对这种情况有任何想法吗?
答案 0 :(得分:3)
您的一个依赖项可能导致该问题。您可以在清单中替换权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" />