android - 仅对于某些图像,无法从 android 10 中的 URI 获取文件路径
问题描述
我的应用程序需要一个上传图像文件的选项,该选项仅适用于某些文件。我无法区分图像文件,以及为什么它不适用于每个图像。我正在我的 Android 10 手机上调试这个应用程序。
我编写的以下代码用于从 URI 获取文件路径。
try {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
cursor.close();
cursor = getContentResolver().query(
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
cursor.close();
return path;
}
catch (Exception e){
Log.e("GET PATH EXCEPTION", e.getMessage());
return null;
}
它抛出请求的索引 0,大小为 0 的异常
解决方案
推荐阅读
- easyadmin - 如何使用 EasyAdmin 2 和 A2lix TranslationFormBundle 将文本编辑器类型用于翻译类型
- python - 从未等待协程 discord.py
- javascript - 反应原生:swiper,第一次显示时出现问题
- javascript - Bootstrap 5.1.3 导航栏点击后不折叠
- amazon-web-services - 使用 ~/.aws/credentials 和 ~/.aws/config 的问题
- kubernetes - 如何禁用 prometheus-operator 堆栈上的服务监控
- yaml - 将默认值合并到无服务器文件中的无服务器插件或 yaml 功能?
- javascript - 从正文中排除 div
- python - 从循环中的列表中删除项目时,有人可以解释输出吗?
- c# - Rider .Net 有时无法构建我的项目