android - 从图库文件路径中选择图像返回 NULL
问题描述
我想从图库中挑选一张图片并获取它的路径。这是我用来打开画廊的代码
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 1111);
和onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
if (resultCode == RESULT_OK) {
Uri selectedImageUri = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImageUri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Log.d("TAG", "onActivityResult: " + filePath);
}
}
filePath
null
如果我从默认系统图像选择器中选择图像,总是如此,尽管如果从图库应用程序中选择图像,它工作正常。我的代码有什么问题?
解决方案
没有要求从或ACTION_GET_CONTENT
返回 a否则有一个列。Uri
MediaStore
Uri
DATA
另请注意,您无权访问Android 10 及更高版本上DATA
的值列MediaStore
Uri
,因此“工作正常”只是暂时的。
我想从图库中挑选一张图片并获取它的路径
没有路径。用户可能正在从云存储提供商(例如 Google Drive)中选择一段内容。
也可以看看:
推荐阅读
- java - JavaFX/Spring 自定义 onViewChange 方法
- javascript - 使用 JS 检查是否在 IE 11 中启用了 cookie
- c - png 的字节在 C 中被损坏
- python - 使用 Python 输出从一个时期到下一个时期的原始值差异
- c++ - 向量大小的模糊性
- azure - 如何确保一次只运行一个 Azure Function BlobTrigger?
- r - 如何将数字转换为日期?
- qt - CMake 配置并生成 LMMS 错误
- html - 如何在 CSS 中获取视口的大小?
- php - 防止多次点击添加到购物车按钮 - wordpress/woocommerce