Android 无法从谷歌照片库拍摄的照片中检索GPS坐标

Android 无法从谷歌照片库拍摄的照片中检索GPS坐标,android,gps,exif,google-photos,Android,Gps,Exif,Google Photos,我正在尝试从在线谷歌照片库中拍摄的照片中读取应用程序中的GPS坐标。 我使用以下代码启动Intent: Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, SELECT_FILE); 我选择了一张肯定不会出现在设备内存中的图片 然后在onActivityResult中,我使用: Uri selec

我正在尝试从在线谷歌照片库中拍摄的照片中读取应用程序中的GPS坐标。 我使用以下代码启动Intent:

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

startActivityForResult(intent, SELECT_FILE);
我选择了一张肯定不会出现在设备内存中的图片

然后在onActivityResult中,我使用:

Uri selectedImage = data.getData();

final InputStream imageStream = getContentResolver().openInputStream(selectedImage);
File outputFile = getOutputMediaFile();
copyFiles(imageStream, outputFile);
imageStream.close();
将完整内容从源图片复制到目标图片,而不经过位图压缩

然后我有一个函数,使用ExiFinInterface getLatLong函数读取GPS坐标,但它返回0,0 ad纬度和经度

对于已经存储在设备内存中的图片,一切正常,但是如果我尝试选择Google Photo cloud上的图片,图片下载正确,我可以保存它,但是没有任何有用的Exif信息

如果我使用谷歌照片应用程序检查同一张照片的信息,GPS数据就在那里


是否有其他方法可以检索包含完整Exif数据的图片?

如果您使用的是内置的
ExifInterface
,请停止,如下所示。使用第三方实现(我链接到该博客文章中的一些选项)。这可能会提高您获得EXIF标题的运气,但我对此表示怀疑。您可以尝试将该文件复制到您的开发机器上,并再次检查那里的EXIF头(例如,通过
exiftool
)。谢谢您提供的信息。无论如何,如果我从我的机器上的Google Photos(Photos.Google.com)的web界面下载该文件,所有必要的EXIF头都在那里,但是如果我从意图中得到if,则不会。你能给我推荐任何第三方exif图书馆吗?一个更好的
现有接口
。例如,我在中使用了一个。谢谢你提供的信息。但我认为问题出在读取Exif之前,因为外部内容URI下载的文件中没有Exif头。也许我把文件保存错了?看起来不错。建议使用另一个库的部分原因是为了能够运行一个测试,在该测试中,您可以在不复制文件的情况下读取EXIF头。不过,如果非要我猜的话,问题出在谷歌照片中,因为某种原因,这些照片会剥离EXIF信息。