geo tagging in android

前端 未结 1 1390
面向向阳花
面向向阳花 2021-01-02 14:13

How to know whether the geo tagging is enabled or disabled in android camera setting through the code? We are attaching the geo tags to photos through code. We using Locatio

1条回答
  •  一向
    一向 (楼主)
    2021-01-02 14:37

    You can't check this programatically. You'll have to read the tags of the pictures taken and check the GPS-coordinates manually, if the tags are empty then geo-tagging is disabled.

    You can use the ExifInterface class to read the EXIF metadata from JPEG images. Here's the official docs link explaining this:

    http://developer.android.com/reference/android/media/ExifInterface.html

    Here's sample code you can use to read the tags:

    Bundle bundle = getIntent().getExtras();
    
    if (null != bundle) {
        String filepath = bundle.getString(FILE_PATH_KEY);
    
        try {
            ExifInterface exif = new ExifInterface(filepath);
            StringBuilder builder = new StringBuilder();
    
            builder.append("Date & Time: " + getExifTag(exif, ExifInterface.TAG_DATETIME) + "\n\n");
            builder.append("Flash: " + getExifTag(exif, ExifInterface.TAG_FLASH) + "\n");
            builder.append("Focal Length: " + getExifTag(exif, ExifInterface.TAG_FOCAL_LENGTH) + "\n\n");
            builder.append("GPS Datestamp: " + getExifTag(exif, ExifInterface.TAG_FLASH) + "\n");
            builder.append("GPS Latitude: " + getExifTag(exif, ExifInterface.TAG_GPS_LATITUDE) + "\n");
            builder.append("GPS Latitude Ref: " + getExifTag(exif, ExifInterface.TAG_GPS_LATITUDE_REF) + "\n");
            builder.append("GPS Longitude: " + getExifTag(exif, ExifInterface.TAG_GPS_LONGITUDE) + "\n");
            builder.append("GPS Longitude Ref: " + getExifTag(exif, ExifInterface.TAG_GPS_LONGITUDE_REF) + "\n");
            builder.append("GPS Processing Method: " + getExifTag(exif, ExifInterface.TAG_GPS_PROCESSING_METHOD) + "\n");
            builder.append("GPS Timestamp: " + getExifTag(exif, ExifInterface.TAG_GPS_TIMESTAMP) + "\n\n");
            builder.append("Image Length: " + getExifTag(exif, ExifInterface.TAG_IMAGE_LENGTH) + "\n");
            builder.append("Image Width: " + getExifTag(exif, ExifInterface.TAG_IMAGE_WIDTH) + "\n\n");
            builder.append("Camera Make: " + getExifTag(exif, ExifInterface.TAG_MAKE) + "\n");
            builder.append("Camera Model: " + getExifTag(exif, ExifInterface.TAG_MODEL) + "\n");
            builder.append("Camera Orientation: " + getExifTag(exif, ExifInterface.TAG_ORIENTATION) + "\n");
            builder.append("Camera White Balance: " + getExifTag(exif, ExifInterface.TAG_WHITE_BALANCE) + "\n");
    
            builder = null;
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    0 讨论(0)
提交回复
热议问题