如何使用Intent(MediaStore.ACTION_IMAGE_CAPTURE)获取图片中的GPS数据?

时间:2016-08-11 14:03:31

标签: android gps photo

有没有办法用Intent(MediaStore.ACTION_IMAGE_CAPTURE)拍摄一张照片,而且相机应用程序已经在Exif数据中设置了GPS位置?

我的应用请求

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

在Manifest中也是

ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION)
ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION)
代码中的

,但我收到的照片并不包含位置数据。当我直接用相机拍照时,照片中会提供位置信息。

编辑:我忘了添加我使用Nexus 6P进行测试,当我使用附带的相机应用程序(3.2.045)进行ACTION_IMAGE_CAPTURE意图时,我看到了&#34;位置针&#34 ;在显示相机取景器之前,在系统托盘中放置一秒钟。这让我相信可能缺少一个设置或参数,可以在图片文件中写入位置信息。

1 个答案:

答案 0 :(得分:-1)

首先,没有单一的“库存相机应用程序”。有数以千计的Android设备型号。随着大多数设备制造商创建他们自己的(并且在三星的情况下,他们的车队中有许多这样的相机应用程序),他们将提供数百种不同的“库存相机应用程序”实现。加ACTION_IMAGE_CAPTURE不一定会使用“库存相机应用程序”。相反,它使用用户想要的任何东西,可能是从Play商店或其他地方安装的第三方相机应用程序。

您的应用无法通过相机应用程序请求将EXIF位置数据添加到照片中,并且不需要相机应用程序包含EXIF位置数据。我对你看到的结果一点也不感到惊讶。

我们欢迎您自行获取位置数据,并根据需要使用an EXIF library将该数据添加到照片中。