android - 尝试加载文件路径时Android中的权限ACCESS_ALL_DOWNLOADS
问题描述
当我从 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);
推荐阅读
- unity3d - 子弹射不准
- angular - Angular复杂的项目结构
- python - 在 python 中创建 venv 并克隆 git repo 的操作
- node.js - NestJS 和 MongoDB | CastError:模型“Player”的路径“_id”处的值“1”转换为 ObjectId 失败
- reactjs - 月度统计图表 Reactjs
- javascript - 在 JavaScript 中创建 DOM 对象
- xml - XSD - cvc-elt.4.2:无法将“{1}”解析为元素“{0}”的类型定义
- ruby-on-rails - 为什么 RSPEC 在使用 Rails 5.2 的编辑视图和新视图测试之间表现不同?
- google-cloud-platform - Cloud Function 部署问题以安排每日 Cloud SQL 导出到 Google Cloud Storage
- node.js - 错误:架构必须包含唯一命名的类型,但包含多个名为“DateTime”的类型