获取存储在 android phone 图库中的图像的路径
Get the path of an image stored in android phone gallery
我想获取存储在 android phone.
图库中的图像的实际路径
在我的应用程序中,我从图库中选择一张图片并将其设置为 imageView。
我需要路径的原因是稍后我想通过 JavaMail 将该图像作为附件发送。
我对此感到很困惑。
我设备中的图片路径是:
Internal storage/DCIM/Camera/image_name.jpg
我使用了以下方法从图片uri获取路径:
String path = imageUri.getPath();
并得到以下结果:
raw//storage/emulated/0/DCIM/Camera/image_name.jpg
现在,当我将上述结果作为要发送的附件的文件路径传递时,我得到了未找到文件异常
raw//storage/emulated/0/DCIM/Camera/image_name.jpg: open failed: ENOENT (No such file or directory)
经过一些尝试和错误,当我将以下路径作为硬编码字符串传递时,图像附件已成功发送:
/storage/emulated/0/DCIM/Camera/image_name.jpg
我知道这种类型的问题已经被问过很多次了,但我无法给出令人满意的工作答案。我希望,对我的问题的这种解释可能会让我找到解决方案。
传递您在 onActivityResult 中获取的 uri,并使用返回的字符串。
public String getPathFromURI(Uri ContentUri) {
String res = null;
String[] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver()
.query(ContentUri, proj, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
res = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
cursor.close();
}
return res;
}
我想获取存储在 android phone.
图库中的图像的实际路径在我的应用程序中,我从图库中选择一张图片并将其设置为 imageView。 我需要路径的原因是稍后我想通过 JavaMail 将该图像作为附件发送。
我对此感到很困惑。
我设备中的图片路径是:
Internal storage/DCIM/Camera/image_name.jpg
我使用了以下方法从图片uri获取路径:
String path = imageUri.getPath();
并得到以下结果:
raw//storage/emulated/0/DCIM/Camera/image_name.jpg
现在,当我将上述结果作为要发送的附件的文件路径传递时,我得到了未找到文件异常
raw//storage/emulated/0/DCIM/Camera/image_name.jpg: open failed: ENOENT (No such file or directory)
经过一些尝试和错误,当我将以下路径作为硬编码字符串传递时,图像附件已成功发送:
/storage/emulated/0/DCIM/Camera/image_name.jpg
我知道这种类型的问题已经被问过很多次了,但我无法给出令人满意的工作答案。我希望,对我的问题的这种解释可能会让我找到解决方案。
传递您在 onActivityResult 中获取的 uri,并使用返回的字符串。
public String getPathFromURI(Uri ContentUri) {
String res = null;
String[] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver()
.query(ContentUri, proj, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
res = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
cursor.close();
}
return res;
}