Sel*_*lin 0 permissions android
我想使用下载文件
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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是权限请求的回调:
@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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试获得READ_EXTERNAL_STORAGE
许可时,我可以获取该许可,但对WRITE_EXTERNAL_STORAGE
许可无效。
另外,我尝试了 @MetaSnarf的解决方案。但是什么都没有改变。
您对这种情况有任何想法吗?
您的依赖项之一可能导致该问题。您可以替换清单中的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
360 次 |
最近记录: |