[英]Android: Dialog to ask for WRITE_EXTERNAL_STORAGE not shown
[英]Permission dialog is not shown for WRITE_EXTERNAL_STORAGE
我想使用DownloadManager
下載文件。 而且DownloadManager
想要WRITE_EXTERNAL_STORAGE
權限。 我在AndroidManifest.xml
包含了WRITE_EXTERNAL_STORAGE
權限。 此外,我嘗試在運行時獲得此許可。
請求權限后立即調用onRequestPermissionsResult回調。 沒有顯示請求權限彈出窗口。
但是, onRequestPermissionsResult
上的grantResult[0]
的值為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的解決方案。 但是什么都沒有改變。
您對這種情況有任何想法嗎?
您的依賴項之一可能導致該問題。 您可以替換清單中的權限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.