Android W / ExifInterface:由于未定义标签号,因此跳过标签条目:2

时间:2018-09-11 15:58:56

标签: android

在android 6.0及更高版本中出现错误。

导入android.support.media.ExifInterface;

公共静态无效setTag(String imageNameFull,双纬度,双经度){

    ExifInterface exif;

    try {
        exif = new ExifInterface(imageNameFull);
        int num1Lat = (int) Math.floor(latitude);
        int num2Lat = (int) Math.floor((latitude - num1Lat) * 60);
        double num3Lat = (latitude - ((double) num1Lat + ((double) num2Lat / 60))) * 3600000;

        int num1Lon = (int) Math.floor(longitude);
        int num2Lon = (int) Math.floor((longitude - num1Lon) * 60);
        double num3Lon = (longitude - ((double) num1Lon + ((double) num2Lon / 60))) * 3600000;

        exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, num1Lat + "/1," + num2Lat + "/1," + num3Lat + "/1000");
        exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, num1Lon + "/1," + num2Lon + "/1," + num3Lon + "/1000");


        if (latitude > 0) {
            exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, "N");
        } else {
            exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, "S");
        }

        if (longitude > 0) {
            exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, "E");
        } else {
            exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, "W");
        }

        exif.saveAttributes();

    } catch (IOException e) {
        e.printStackTrace();
        LOG.e("GeoTag", e.getLocalizedMessage());
    }
}

0 个答案:

没有答案