/** * 写入信息到图片文件 */ public void writeGpsToImage(String path) { ExifInterface exifInterface = null; try { exifInterface = new ExifInterface(path); exifInterface.setAttribute(ExifInterface.TAG_DATETIME, "20161227"); //写入时间 // 写入经度信息 exifInterface.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, this.gpsInfoConvert(jingdu)); exifInterface.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, lng > 0 ? "E" : "W"); // 写入纬度信息 exifInterface.setAttribute(ExifInterface.TAG_GPS_LATITUDE, gpsInfoConvert(weidu)); exifInterface.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, lat > 0 ? "N" : "S"); // 执行保存 exifInterface.saveAttributes(); } catch (IOException e) { e.printStackTrace(); } } /** * 将正常的经纬度信息转换成图片随需要的格式 */ private String gpsInfoConvert(double gpsInfo) { gpsInfo= Math.abs(gpsInfo); String dms = Location.convert(gpsInfo, Location.FORMAT_SECONDS); String[]splits = dms.split(":"); String[]secnds = (splits[2]).split("\\."); String seconds; if (secnds.length == 0) { seconds= splits[2]; }else{ seconds= secnds[0]; } return splits[0] + "/1," + splits[1] + "/1," + seconds + "/1"; }