首页 > 解决方案 > 使用来自 Uri - Android 的完整信息/详细信息保存来自 Google 照片的图像

问题描述

我正在使用 ExifInterface,它需要图像路径来从 Uri 获取纬度/经度等信息。我可以从 Uri 获取保存在设备上的图像的路径并将其发送到 ExifInterface 以获取详细信息。

但是,这不适用于 Google 相册云上的图像。从图库中选择时,照片会自动下载,但 ExifInterface 无法检索任何信息,因为 cursor.getString(index) 为空。

所以我尝试将图像保存到存储中,如下所述:Getting path from Uri from Google Photos app

然后,当我使用 Google 照片应用程序打开保存的文件时,我看不到位置详细信息。但是,如果我通过单击“保存”从 Google 照片应用程序手动保存图像,则该图像会显示位置详细信息。

无论如何保存图像文件时保存图像细节?

标签: androidsave-image

解决方案


我正在使用 ExifInterface,它需要图像路径来从 Uri 获取纬度/经度等信息。

您可以使用ContentResolver及其方法来openInputStream()获取. 然后,将其传递构造函数InputStreamUriInputStreamExifInterface

请注意,图像无需为 JPEG 格式(EXIF 标签可用)或 JPEG 图像具有地理标签。

从图库中选择时,照片会自动下载,但 ExifInterface 无法检索任何信息,因为 cursor.getString(index) 为空。

没有要求 aUri指向一条内容,如照片,来支持任何涉及 a 的内容Cursor

所以我尝试将图像保存到存储中,如下所述:Getting path from Uri from Google Photos app

您可以提供InputStreamtoExifInterface并使用更少的代码获得相同的结果。

然后,当我使用 Google 照片应用打开保存的文件时,我看不到位置详细信息

可能Uri指向的内容缺少您要查找的 EXIF 标记。也许无论出于何种原因,谷歌照片都会单独保留这些信息。这取决于创建 Google 照片的开发人员。

问题也可能在于您如何手动测试它。

无论如何,首先通过InputStream直接传递 toExifInterface并以这种方式检查 EXIF 标签。也许你会得到更好的结果。


推荐阅读