我一直在尝试找到答案而没有成功的例外,当我从API 28上的下载文件夹中选择文件时,该异常被抛出了,最终将其作为后备被缓存为但是还是检索了路径。
tl; dr:我需要什么解决此例外?
java.lang.SecurityException: Permission Denial: reading
com.android.providers.downloads.DownloadProvider uri
content://downloads/all_downloads/40 from pid=13467, uid=10091 requires
android.permission.ACCESS_ALL_DOWNLOADS, or grantUriPermission()
到目前为止我已经尝试过的事情:
将其添加到清单文件:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_ALL_DOWNLOADS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name = "android.permission.ACCESS_DOWNLOAD_MANAGER"/>
并在运行时请求Manifest.permission.WRITE_EXTERNAL_STORAGE
。
假设您要访问下载文件夹以拾取图像文件
Intent intent = new Intent();
intent.setType("image/*");
if (Build.VERSION.SDK_INT <19)
intent.setAction(Intent.ACTION_GET_CONTENT);
else
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
startActivityForResult(Intent.createChooser(intent, "Select Image"), requestSelectImage);