Android 4.4和更早版本的Exif标签不同?
我的问题是,我试图从exif标签获取GPS位置,因此我在网上找到了以下代码:Android 4.4和更早版本的Exif标签不同?,android,exif,Android,Exif,我的问题是,我试图从exif标签获取GPS位置,因此我在网上找到了以下代码: Uri selectedImage = imageReturnedIntent.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
ExifInterface exif = new ExifInterface(filePath);
String exifString = "Exif: " + filePath;
exifString += "\nGPS related:";
exifString += "\nTAG_GPS_DATESTAMP: "+ exif.getAttribute(ExifInterface.TAG_GPS_DATESTAMP);
exifString += "\nTAG_GPS_TIMESTAMP: "+ exif.getAttribute(ExifInterface.TAG_GPS_TIMESTAMP);
String attrLATITUDE = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
String attrLATITUDE_REF = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF);
String attrLONGITUDE = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
String attrLONGITUDE_REF = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);
if ((attrLATITUDE != null) && (attrLATITUDE_REF != null)
&& (attrLONGITUDE != null)
&& (attrLONGITUDE_REF != null)) {
if ("N".equals(attrLATITUDE_REF)) {
lat = convertToDegree(attrLATITUDE);
} else {
lat = -convertToDegree(attrLATITUDE);
}
if ("E".equals(attrLONGITUDE_REF)) {
lng = convertToDegree(attrLONGITUDE);
} else {
lng = -convertToDegree(attrLONGITUDE);
}
exifString += "\nTAG_GPS_LATITUDE: " + lat;
exifString += "\nTAG_GPS_LONGITUDE: " + lng;
}
textView.setText(exifString);
我在3台设备上运行上述代码:
Nexus7Android 4.4.2
平板电脑F7HD安卓4.0.4
Genymotion安卓4.3
选项存储位置在所有选项上都处于启用状态。然后我在每张照片上拍照,位置存储在这些照片上,因为我打开照片应用程序Google+,打开照片并选择详细信息,应用程序会准确返回拍照的位置
但当我运行代码时,只有Nexus7上拍摄的照片返回GPS信息。其余的返回null。我将Nexus7的照片复制到我的Genymotion和F7HD上,我的代码也可以正常工作
有什么想法吗?我真的需要获取GPS信息才能完成我的capstone项目中的一项任务。您是否尝试过将照片从F7HD或Genymotion复制到Nexus 7,并检查您的代码是否正确解析?我已经这样做了,但只有Google+的照片才能读取它,简而言之,我的代码不适用于Nexus 7上捕获的照片。我不知道为什么它不能和其他的一起工作。首先,你的平板电脑有GPS模块吗?其次,Genymotion不是模拟器吗?首先,我的平板电脑绝对有GPS模块。其次,Genymotion只是一个模拟器,但它也模拟GPS,我在Genymotion上放了一张照片,Google+中的应用程序照片仍然可以识别照片中的GPS位置。