java - 对于 Android 9,内容解析器对数据的查询为空
问题描述
今天我在尝试将外部 PDF 导入我的应用程序时遇到问题。此问题仅发生在 Android 9(可能是 9+)上。在用于检索文件路径的代码部分下方:
String[] proj = { MediaStore.Images.Media.DATA, OpenableColumns.DISPLAY_NAME };
Cursor cursor = context.getContentResolver().query(uri, proj, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
String path = cursor.getString(0); // <-- This is always null
//In the case it comes from Chrome
if(pathExternalFile.getAuthority().contains("chrome") || pathExternalFile.getAuthority().contains("fetcher"))
name = String.format("%s/%s", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), path);
else
name = path;
}
Android 9 有什么变化吗?我已经阅读了文档,似乎一切都很好。
解决方案
推荐阅读
- proof - 精益中的案例策略不会产生假设
- javascript - 加载图像(Vue.js、Django)
- php - 捕获 Ajax 查询 POST 错误不起作用
- java - SomeEnum.values() 在进行枚举切换时定义在不可访问的类或接口中
- spring-boot - 如何将响应式拦截器添加到 Spring Boot 注释控制器?
- python - 在熊猫里面添加一个 if
- mysql - 带有来自谷歌表格的变量的谷歌脚本 MYSQL QUERY
- chart.js - 在 chart.js 中捕获显示和隐藏数据集的事件
- c# - 使用 Azure.Identity InteractiveBrowserCredential 类获取令牌时弹出窗口未在 Windows 应用程序中打开
- terraform-provider-gcp - terraform 中的组织安全策略错误