Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/media/ExifInterface#constants) \| [Ctors](https://developer.android.com/reference/android/media/ExifInterface#pubctors) \| [Methods](https://developer.android.com/reference/android/media/ExifInterface#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/ExifInterface#inhmethods)

# ExifInterface

*** ** * ** ***

` public class ExifInterface `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.ExifInterface |

<br />

*** ** * ** ***

This is a class for reading and writing Exif tags in various image file formats.

**Note:** This class has known issues on some versions of Android. It is recommended to use the [AndroidX](https://developer.android.com/jetpack/androidx) [ExifInterface Library](https://developer.android.com/reference/androidx/exifinterface/media/ExifInterface) since it offers a superset of the functionality of this class and is more easily updateable. In addition to the functionality of this class, it supports parsing extra metadata such as exposure and data compression information as well as setting extra metadata such as GPS and datetime information.

Supported for reading: JPEG, PNG, WebP, HEIF, DNG, CR2, NEF, NRW, ARW, RW2, ORF, PEF, SRW, RAF, AVIF.

Supported for writing: JPEG, PNG, WebP.

Note: JPEG and HEIF files may contain XMP data either inside the Exif data chunk or outside of it. This class will search both locations for XMP data, but if XMP data exist both inside and outside Exif, will favor the XMP data inside Exif over the one outside.

<br />

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_FLIP_HORIZONTAL` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_FLIP_VERTICAL` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_NORMAL` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_ROTATE_180` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_ROTATE_270` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_ROTATE_90` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_TRANSPOSE` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_TRANSVERSE` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#ORIENTATION_UNDEFINED` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#STREAM_TYPE_EXIF_DATA_ONLY` Constant used to indicate that the input stream contains only Exif data. |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#STREAM_TYPE_FULL_IMAGE_DATA` Constant used to indicate that the input stream contains the full image data. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_APERTURE` *This constant was deprecated in API level 24. use `https://developer.android.com/reference/android/media/ExifInterface#TAG_F_NUMBER` instead* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_APERTURE_VALUE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ARTIST` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_BITS_PER_SAMPLE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_BRIGHTNESS_VALUE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_CFA_PATTERN` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_COLOR_SPACE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_COMPONENTS_CONFIGURATION` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_COMPRESSED_BITS_PER_PIXEL` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_COMPRESSION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_CONTRAST` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_COPYRIGHT` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_CUSTOM_RENDERED` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME_DIGITIZED` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME_ORIGINAL` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DEFAULT_CROP_SIZE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DEVICE_SETTING_DESCRIPTION` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DIGITAL_ZOOM_RATIO` Type is double. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_DNG_VERSION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_EXIF_VERSION` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_EXPOSURE_BIAS_VALUE` Type is double. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_EXPOSURE_INDEX` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_EXPOSURE_MODE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_EXPOSURE_PROGRAM` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_EXPOSURE_TIME` Type is double. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FILE_SOURCE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FLASH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FLASHPIX_VERSION` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FLASH_ENERGY` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FOCAL_LENGTH` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FOCAL_LENGTH_IN_35MM_FILM` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FOCAL_PLANE_RESOLUTION_UNIT` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FOCAL_PLANE_X_RESOLUTION` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_FOCAL_PLANE_Y_RESOLUTION` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_F_NUMBER` Type is double. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GAIN_CONTROL` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_ALTITUDE` The altitude (in meters) based on the reference in TAG_GPS_ALTITUDE_REF. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_ALTITUDE_REF` 0 if the altitude is above sea level. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_AREA_INFORMATION` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DATESTAMP` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_BEARING` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_BEARING_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_DISTANCE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_DISTANCE_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_LATITUDE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_LATITUDE_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_LONGITUDE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DEST_LONGITUDE_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DIFFERENTIAL` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_DOP` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_IMG_DIRECTION` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_IMG_DIRECTION_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_LATITUDE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_LATITUDE_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_LONGITUDE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_LONGITUDE_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_MAP_DATUM` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_MEASURE_MODE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_PROCESSING_METHOD` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_SATELLITES` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_SPEED` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_SPEED_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_STATUS` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_TIMESTAMP` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_TRACK` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_TRACK_REF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_GPS_VERSION_ID` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_IMAGE_DESCRIPTION` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_IMAGE_LENGTH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_IMAGE_UNIQUE_ID` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_IMAGE_WIDTH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_INTEROPERABILITY_INDEX` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ISO` *This constant was deprecated in API level 24. use `https://developer.android.com/reference/android/media/ExifInterface#TAG_ISO_SPEED_RATINGS` instead* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ISO_SPEED_RATINGS` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_JPEG_INTERCHANGE_FORMAT` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_JPEG_INTERCHANGE_FORMAT_LENGTH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_LIGHT_SOURCE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_MAKE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_MAKER_NOTE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_MAX_APERTURE_VALUE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_METERING_MODE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_MODEL` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_NEW_SUBFILE_TYPE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_OECF` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_OFFSET_TIME` <br /> A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTime tag. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_OFFSET_TIME_DIGITIZED` <br /> A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeDigitized tag. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_OFFSET_TIME_ORIGINAL` <br /> A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeOriginal tag. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ORF_ASPECT_FRAME` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ORF_PREVIEW_IMAGE_LENGTH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ORF_PREVIEW_IMAGE_START` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ORF_THUMBNAIL_IMAGE` Type is undefined. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ORIENTATION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_PHOTOMETRIC_INTERPRETATION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_PIXEL_X_DIMENSION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_PIXEL_Y_DIMENSION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_PLANAR_CONFIGURATION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_PRIMARY_CHROMATICITIES` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_REFERENCE_BLACK_WHITE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RELATED_SOUND_FILE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RESOLUTION_UNIT` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_ROWS_PER_STRIP` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RW2_ISO` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RW2_JPG_FROM_RAW` Type is undefined. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RW2_SENSOR_BOTTOM_BORDER` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RW2_SENSOR_LEFT_BORDER` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RW2_SENSOR_RIGHT_BORDER` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_RW2_SENSOR_TOP_BORDER` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SAMPLES_PER_PIXEL` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SATURATION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SCENE_CAPTURE_TYPE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SCENE_TYPE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SENSING_METHOD` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SHARPNESS` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SHUTTER_SPEED_VALUE` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SOFTWARE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SPATIAL_FREQUENCY_RESPONSE` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SPECTRAL_SENSITIVITY` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_STRIP_BYTE_COUNTS` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_STRIP_OFFSETS` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBFILE_TYPE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBJECT_AREA` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBJECT_DISTANCE` Type is double. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBJECT_DISTANCE_RANGE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBJECT_LOCATION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_DIG` *This constant was deprecated in API level 24. use `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_DIGITIZED` instead* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_DIGITIZED` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_ORIG` *This constant was deprecated in API level 24. use `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_ORIGINAL` instead* |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_ORIGINAL` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_THUMBNAIL_IMAGE_LENGTH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_THUMBNAIL_IMAGE_WIDTH` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_THUMBNAIL_ORIENTATION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_TRANSFER_FUNCTION` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_USER_COMMENT` Type is String. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_WHITE_BALANCE` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_WHITE_POINT` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_XMP` Type is byte\[\]. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_X_RESOLUTION` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_Y_CB_CR_COEFFICIENTS` Type is rational. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_Y_CB_CR_POSITIONING` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_Y_CB_CR_SUB_SAMPLING` Type is int. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/ExifInterface#TAG_Y_RESOLUTION` Type is rational. |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#WHITEBALANCE_AUTO` <br /> |
| `int` | `https://developer.android.com/reference/android/media/ExifInterface#WHITEBALANCE_MANUAL` <br /> |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/media/ExifInterface#ExifInterface(java.io.File)(https://developer.android.com/reference/java/io/File file) ` Reads Exif tags from the specified image file. |
| ` https://developer.android.com/reference/android/media/ExifInterface#ExifInterface(java.io.FileDescriptor)(https://developer.android.com/reference/java/io/FileDescriptor fileDescriptor) ` Reads Exif tags from the specified image file descriptor. |
| ` https://developer.android.com/reference/android/media/ExifInterface#ExifInterface(java.io.InputStream)(https://developer.android.com/reference/java/io/InputStream inputStream) ` Reads Exif tags from the specified image input stream. |
| ` https://developer.android.com/reference/android/media/ExifInterface#ExifInterface(java.io.InputStream,%20int)(https://developer.android.com/reference/java/io/InputStream inputStream, int streamType) ` Reads Exif tags from the specified image input stream based on the stream type. |
| ` https://developer.android.com/reference/android/media/ExifInterface#ExifInterface(java.lang.String)(https://developer.android.com/reference/java/lang/String filename) ` Reads Exif tags from the specified image file. |

| ### Public methods ||
|---|---|
| ` double` | ` https://developer.android.com/reference/android/media/ExifInterface#getAltitude(double)(double defaultValue) ` Return the altitude in meters. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/media/ExifInterface#getAttribute(java.lang.String)(https://developer.android.com/reference/java/lang/String tag) ` Returns the value of the specified tag or `null` if there is no such tag in the image file. |
| ` byte[]` | ` https://developer.android.com/reference/android/media/ExifInterface#getAttributeBytes(java.lang.String)(https://developer.android.com/reference/java/lang/String tag) ` Returns the raw bytes for the value of the requested tag inside the image file, or `null` if the tag is not contained. |
| ` double` | ` https://developer.android.com/reference/android/media/ExifInterface#getAttributeDouble(java.lang.String,%20double)(https://developer.android.com/reference/java/lang/String tag, double defaultValue) ` Returns the double value of the tag that is specified as rational or contains a double-formatted value. |
| ` int` | ` https://developer.android.com/reference/android/media/ExifInterface#getAttributeInt(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String tag, int defaultValue) ` Returns the integer value of the specified tag. |
| ` long[]` | ` https://developer.android.com/reference/android/media/ExifInterface#getAttributeRange(java.lang.String)(https://developer.android.com/reference/java/lang/String tag) ` Returns the offset and length of the requested tag inside the image file, or `null` if the tag is not contained. |
| ` long` | ` https://developer.android.com/reference/android/media/ExifInterface#getDateTime()() ` Returns parsed `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME` value, or -1 if unavailable or invalid. |
| ` long` | ` https://developer.android.com/reference/android/media/ExifInterface#getDateTimeDigitized()() ` Returns parsed `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME_DIGITIZED` value, or -1 if unavailable or invalid. |
| ` long` | ` https://developer.android.com/reference/android/media/ExifInterface#getDateTimeOriginal()() ` Returns parsed `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME_ORIGINAL` value, or -1 if unavailable or invalid. |
| ` long` | ` https://developer.android.com/reference/android/media/ExifInterface#getGpsDateTime()() ` Returns number of milliseconds since Jan. |
| ` boolean` | ` https://developer.android.com/reference/android/media/ExifInterface#getLatLong(float[])(float[] output) ` Stores the latitude and longitude value in a float array. |
| ` byte[]` | ` https://developer.android.com/reference/android/media/ExifInterface#getThumbnail()() ` Returns the JPEG compressed thumbnail inside the image file, or `null` if there is no JPEG compressed thumbnail. |
| ` https://developer.android.com/reference/android/graphics/Bitmap` | ` https://developer.android.com/reference/android/media/ExifInterface#getThumbnailBitmap()() ` Creates and returns a Bitmap object of the thumbnail image based on the byte array and the thumbnail compression value, or `null` if the compression type is unsupported. |
| ` byte[]` | ` https://developer.android.com/reference/android/media/ExifInterface#getThumbnailBytes()() ` Returns the thumbnail bytes inside the image file, regardless of the compression type of the thumbnail image. |
| ` long[]` | ` https://developer.android.com/reference/android/media/ExifInterface#getThumbnailRange()() ` Returns the offset and length of thumbnail inside the image file, or `null` if either there is no thumbnail or the thumbnail bytes are stored non-consecutively. |
| ` boolean` | ` https://developer.android.com/reference/android/media/ExifInterface#hasAttribute(java.lang.String)(https://developer.android.com/reference/java/lang/String tag) ` Returns true if the image file has the given attribute defined. |
| ` boolean` | ` https://developer.android.com/reference/android/media/ExifInterface#hasThumbnail()() ` Returns true if the image file has a thumbnail. |
| ` static boolean` | ` https://developer.android.com/reference/android/media/ExifInterface#isSupportedMimeType(java.lang.String)(https://developer.android.com/reference/java/lang/String mimeType) ` Returns whether ExifInterface currently supports reading data from the specified mime type or not. |
| ` boolean` | ` https://developer.android.com/reference/android/media/ExifInterface#isThumbnailCompressed()() ` Returns true if thumbnail image is JPEG Compressed, or false if either thumbnail image does not exist or thumbnail image is uncompressed. |
| ` void` | ` https://developer.android.com/reference/android/media/ExifInterface#saveAttributes()() ` Save the tag data into the original image file. |
| ` void` | ` https://developer.android.com/reference/android/media/ExifInterface#setAttribute(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String tag, https://developer.android.com/reference/java/lang/String value) ` Set the value of the specified tag. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### ORIENTATION_FLIP_HORIZONTAL

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_FLIP_HORIZONTAL
```

<br />

<br />

Constant Value: 2 (0x00000002)

### ORIENTATION_FLIP_VERTICAL

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_FLIP_VERTICAL
```

<br />

<br />

Constant Value: 4 (0x00000004)

### ORIENTATION_NORMAL

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_NORMAL
```

<br />

<br />

Constant Value: 1 (0x00000001)

### ORIENTATION_ROTATE_180

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_ROTATE_180
```

<br />

<br />

Constant Value: 3 (0x00000003)

### ORIENTATION_ROTATE_270

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_ROTATE_270
```

<br />

<br />

Constant Value: 8 (0x00000008)

### ORIENTATION_ROTATE_90

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_ROTATE_90
```

<br />

<br />

Constant Value: 6 (0x00000006)

### ORIENTATION_TRANSPOSE

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_TRANSPOSE
```

<br />

<br />

Constant Value: 5 (0x00000005)

### ORIENTATION_TRANSVERSE

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_TRANSVERSE
```

<br />

<br />

Constant Value: 7 (0x00000007)

### ORIENTATION_UNDEFINED

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ORIENTATION_UNDEFINED
```

<br />

<br />

Constant Value: 0 (0x00000000)

### STREAM_TYPE_EXIF_DATA_ONLY

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int STREAM_TYPE_EXIF_DATA_ONLY
```

Constant used to indicate that the input stream contains only Exif data.

The format of the Exif-only data must follow the below structure: Exif Identifier Code ("Exif\\0\\0") + TIFF header + IFD data See JEITA CP-3451C Section 4.5.2 and 4.5.4 specifications for more details.

<br />

Constant Value: 1 (0x00000001)

### STREAM_TYPE_FULL_IMAGE_DATA

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int STREAM_TYPE_FULL_IMAGE_DATA
```

Constant used to indicate that the input stream contains the full image data.

The format of the image data should follow one of the image formats supported by this class.

<br />

Constant Value: 0 (0x00000000)

### TAG_APERTURE

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_APERTURE
```

<br />

**This constant was deprecated in API level 24.**   

use `https://developer.android.com/reference/android/media/ExifInterface#TAG_F_NUMBER` instead

Type is double.

<br />

Constant Value: "FNumber"

### TAG_APERTURE_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_APERTURE_VALUE
```

Type is rational.

<br />

Constant Value: "ApertureValue"

### TAG_ARTIST

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ARTIST
```

Type is String.

<br />

Constant Value: "Artist"

### TAG_BITS_PER_SAMPLE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_BITS_PER_SAMPLE
```

Type is int.

<br />

Constant Value: "BitsPerSample"

### TAG_BRIGHTNESS_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_BRIGHTNESS_VALUE
```

Type is rational.

<br />

Constant Value: "BrightnessValue"

### TAG_CFA_PATTERN

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_CFA_PATTERN
```

Type is String.

<br />

Constant Value: "CFAPattern"

### TAG_COLOR_SPACE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_COLOR_SPACE
```

Type is int.

<br />

Constant Value: "ColorSpace"

### TAG_COMPONENTS_CONFIGURATION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_COMPONENTS_CONFIGURATION
```

Type is String.

<br />

Constant Value: "ComponentsConfiguration"

### TAG_COMPRESSED_BITS_PER_PIXEL

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_COMPRESSED_BITS_PER_PIXEL
```

Type is rational.

<br />

Constant Value: "CompressedBitsPerPixel"

### TAG_COMPRESSION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_COMPRESSION
```

Type is int.

<br />

Constant Value: "Compression"

### TAG_CONTRAST

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_CONTRAST
```

Type is int.

<br />

Constant Value: "Contrast"

### TAG_COPYRIGHT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_COPYRIGHT
```

Type is String.

<br />

Constant Value: "Copyright"

### TAG_CUSTOM_RENDERED

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_CUSTOM_RENDERED
```

Type is int.

<br />

Constant Value: "CustomRendered"

### TAG_DATETIME

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DATETIME
```

Type is String.

<br />

Constant Value: "DateTime"

### TAG_DATETIME_DIGITIZED

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DATETIME_DIGITIZED
```

Type is String.

<br />

Constant Value: "DateTimeDigitized"

### TAG_DATETIME_ORIGINAL

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DATETIME_ORIGINAL
```

Type is String.

<br />

Constant Value: "DateTimeOriginal"

### TAG_DEFAULT_CROP_SIZE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DEFAULT_CROP_SIZE
```

Type is int. DNG Specification 1.4.0.0. Section 4

<br />

Constant Value: "DefaultCropSize"

### TAG_DEVICE_SETTING_DESCRIPTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DEVICE_SETTING_DESCRIPTION
```

Type is String.

<br />

Constant Value: "DeviceSettingDescription"

### TAG_DIGITAL_ZOOM_RATIO

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DIGITAL_ZOOM_RATIO
```

Type is double.

<br />

Constant Value: "DigitalZoomRatio"

### TAG_DNG_VERSION

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_DNG_VERSION
```

Type is int. DNG Specification 1.4.0.0. Section 4

<br />

Constant Value: "DNGVersion"

### TAG_EXIF_VERSION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_EXIF_VERSION
```

Type is String.

<br />

Constant Value: "ExifVersion"

### TAG_EXPOSURE_BIAS_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_EXPOSURE_BIAS_VALUE
```

Type is double.

<br />

Constant Value: "ExposureBiasValue"

### TAG_EXPOSURE_INDEX

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_EXPOSURE_INDEX
```

Type is rational.

<br />

Constant Value: "ExposureIndex"

### TAG_EXPOSURE_MODE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_EXPOSURE_MODE
```

Type is int.

<br />

Constant Value: "ExposureMode"

### TAG_EXPOSURE_PROGRAM

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_EXPOSURE_PROGRAM
```

Type is int.

<br />

Constant Value: "ExposureProgram"

### TAG_EXPOSURE_TIME

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_EXPOSURE_TIME
```

Type is double.

<br />

Constant Value: "ExposureTime"

### TAG_FILE_SOURCE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FILE_SOURCE
```

Type is String.

<br />

Constant Value: "FileSource"

### TAG_FLASH

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FLASH
```

Type is int.

<br />

Constant Value: "Flash"

### TAG_FLASHPIX_VERSION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FLASHPIX_VERSION
```

Type is String.

<br />

Constant Value: "FlashpixVersion"

### TAG_FLASH_ENERGY

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FLASH_ENERGY
```

Type is rational.

<br />

Constant Value: "FlashEnergy"

### TAG_FOCAL_LENGTH

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FOCAL_LENGTH
```

Type is rational.

<br />

Constant Value: "FocalLength"

### TAG_FOCAL_LENGTH_IN_35MM_FILM

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FOCAL_LENGTH_IN_35MM_FILM
```

Type is int.

<br />

Constant Value: "FocalLengthIn35mmFilm"

### TAG_FOCAL_PLANE_RESOLUTION_UNIT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FOCAL_PLANE_RESOLUTION_UNIT
```

Type is int.

<br />

Constant Value: "FocalPlaneResolutionUnit"

### TAG_FOCAL_PLANE_X_RESOLUTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FOCAL_PLANE_X_RESOLUTION
```

Type is rational.

<br />

Constant Value: "FocalPlaneXResolution"

### TAG_FOCAL_PLANE_Y_RESOLUTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_FOCAL_PLANE_Y_RESOLUTION
```

Type is rational.

<br />

Constant Value: "FocalPlaneYResolution"

### TAG_F_NUMBER

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_F_NUMBER
```

Type is double.

<br />

Constant Value: "FNumber"

### TAG_GAIN_CONTROL

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GAIN_CONTROL
```

Type is int.

<br />

Constant Value: "GainControl"

### TAG_GPS_ALTITUDE

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_ALTITUDE
```

The altitude (in meters) based on the reference in TAG_GPS_ALTITUDE_REF. Type is rational.

<br />

Constant Value: "GPSAltitude"

### TAG_GPS_ALTITUDE_REF

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_ALTITUDE_REF
```

0 if the altitude is above sea level. 1 if the altitude is below sea level. Type is int.

<br />

Constant Value: "GPSAltitudeRef"

### TAG_GPS_AREA_INFORMATION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_AREA_INFORMATION
```

Type is String.

<br />

Constant Value: "GPSAreaInformation"

### TAG_GPS_DATESTAMP

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DATESTAMP
```

Type is String.

<br />

Constant Value: "GPSDateStamp"

### TAG_GPS_DEST_BEARING

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_BEARING
```

Type is rational.

<br />

Constant Value: "GPSDestBearing"

### TAG_GPS_DEST_BEARING_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_BEARING_REF
```

Type is String.

<br />

Constant Value: "GPSDestBearingRef"

### TAG_GPS_DEST_DISTANCE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_DISTANCE
```

Type is rational.

<br />

Constant Value: "GPSDestDistance"

### TAG_GPS_DEST_DISTANCE_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_DISTANCE_REF
```

Type is String.

<br />

Constant Value: "GPSDestDistanceRef"

### TAG_GPS_DEST_LATITUDE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_LATITUDE
```

Type is rational.

<br />

Constant Value: "GPSDestLatitude"

### TAG_GPS_DEST_LATITUDE_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_LATITUDE_REF
```

Type is String.

<br />

Constant Value: "GPSDestLatitudeRef"

### TAG_GPS_DEST_LONGITUDE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_LONGITUDE
```

Type is rational.

<br />

Constant Value: "GPSDestLongitude"

### TAG_GPS_DEST_LONGITUDE_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DEST_LONGITUDE_REF
```

Type is String.

<br />

Constant Value: "GPSDestLongitudeRef"

### TAG_GPS_DIFFERENTIAL

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DIFFERENTIAL
```

Type is int.

<br />

Constant Value: "GPSDifferential"

### TAG_GPS_DOP

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_DOP
```

Type is rational.

<br />

Constant Value: "GPSDOP"

### TAG_GPS_IMG_DIRECTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_IMG_DIRECTION
```

Type is rational.

<br />

Constant Value: "GPSImgDirection"

### TAG_GPS_IMG_DIRECTION_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_IMG_DIRECTION_REF
```

Type is String.

<br />

Constant Value: "GPSImgDirectionRef"

### TAG_GPS_LATITUDE

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_LATITUDE
```

Type is rational. Format is "num1/denom1,num2/denom2,num3/denom3".

<br />

Constant Value: "GPSLatitude"

### TAG_GPS_LATITUDE_REF

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_LATITUDE_REF
```

Type is String.

<br />

Constant Value: "GPSLatitudeRef"

### TAG_GPS_LONGITUDE

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_LONGITUDE
```

Type is rational. Format is "num1/denom1,num2/denom2,num3/denom3".

<br />

Constant Value: "GPSLongitude"

### TAG_GPS_LONGITUDE_REF

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_LONGITUDE_REF
```

Type is String.

<br />

Constant Value: "GPSLongitudeRef"

### TAG_GPS_MAP_DATUM

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_MAP_DATUM
```

Type is String.

<br />

Constant Value: "GPSMapDatum"

### TAG_GPS_MEASURE_MODE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_MEASURE_MODE
```

Type is String.

<br />

Constant Value: "GPSMeasureMode"

### TAG_GPS_PROCESSING_METHOD

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_PROCESSING_METHOD
```

Type is String. Name of GPS processing method used for location finding.

<br />

Constant Value: "GPSProcessingMethod"

### TAG_GPS_SATELLITES

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_SATELLITES
```

Type is String.

<br />

Constant Value: "GPSSatellites"

### TAG_GPS_SPEED

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_SPEED
```

Type is rational.

<br />

Constant Value: "GPSSpeed"

### TAG_GPS_SPEED_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_SPEED_REF
```

Type is String.

<br />

Constant Value: "GPSSpeedRef"

### TAG_GPS_STATUS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_STATUS
```

Type is String.

<br />

Constant Value: "GPSStatus"

### TAG_GPS_TIMESTAMP

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_TIMESTAMP
```

Type is String. Format is "hh:mm:ss".

<br />

Constant Value: "GPSTimeStamp"

### TAG_GPS_TRACK

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_TRACK
```

Type is rational.

<br />

Constant Value: "GPSTrack"

### TAG_GPS_TRACK_REF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_TRACK_REF
```

Type is String.

<br />

Constant Value: "GPSTrackRef"

### TAG_GPS_VERSION_ID

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_GPS_VERSION_ID
```

Type is String.

<br />

Constant Value: "GPSVersionID"

### TAG_IMAGE_DESCRIPTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_IMAGE_DESCRIPTION
```

Type is String.

<br />

Constant Value: "ImageDescription"

### TAG_IMAGE_LENGTH

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_IMAGE_LENGTH
```

Type is int.

<br />

Constant Value: "ImageLength"

### TAG_IMAGE_UNIQUE_ID

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_IMAGE_UNIQUE_ID
```

Type is String.

<br />

Constant Value: "ImageUniqueID"

### TAG_IMAGE_WIDTH

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_IMAGE_WIDTH
```

Type is int.

<br />

Constant Value: "ImageWidth"

### TAG_INTEROPERABILITY_INDEX

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_INTEROPERABILITY_INDEX
```

Type is String.

<br />

Constant Value: "InteroperabilityIndex"

### TAG_ISO

Added in [API level 11](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ISO
```

<br />

**This constant was deprecated in API level 24.**   

use `https://developer.android.com/reference/android/media/ExifInterface#TAG_ISO_SPEED_RATINGS` instead

Type is int.

<br />

Constant Value: "ISOSpeedRatings"

### TAG_ISO_SPEED_RATINGS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ISO_SPEED_RATINGS
```

Type is int.

<br />

Constant Value: "ISOSpeedRatings"

### TAG_JPEG_INTERCHANGE_FORMAT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_JPEG_INTERCHANGE_FORMAT
```

Type is int.

<br />

Constant Value: "JPEGInterchangeFormat"

### TAG_JPEG_INTERCHANGE_FORMAT_LENGTH

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH
```

Type is int.

<br />

Constant Value: "JPEGInterchangeFormatLength"

### TAG_LIGHT_SOURCE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_LIGHT_SOURCE
```

Type is int.

<br />

Constant Value: "LightSource"

### TAG_MAKE

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_MAKE
```

Type is String.

<br />

Constant Value: "Make"

### TAG_MAKER_NOTE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_MAKER_NOTE
```

Type is String.

<br />

Constant Value: "MakerNote"

### TAG_MAX_APERTURE_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_MAX_APERTURE_VALUE
```

Type is rational.

<br />

Constant Value: "MaxApertureValue"

### TAG_METERING_MODE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_METERING_MODE
```

Type is int.

<br />

Constant Value: "MeteringMode"

### TAG_MODEL

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_MODEL
```

Type is String.

<br />

Constant Value: "Model"

### TAG_NEW_SUBFILE_TYPE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_NEW_SUBFILE_TYPE
```

Type is int.

<br />

Constant Value: "NewSubfileType"

### TAG_OECF

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_OECF
```

Type is String.

<br />

Constant Value: "OECF"

### TAG_OFFSET_TIME

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_OFFSET_TIME
```

<br />

A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTime tag. The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-". When the offsets are unknown, all the character spaces except colons (":") should be filled with blank characters, or else the Interoperability field should be filled with blank characters. The character string length is 7 Bytes including NULL for termination. When the field is left blank, it is treated as unknown.

- Tag = 36880
- Type = String
- Length = 7
- Default = None

<br />

<br />

Constant Value: "OffsetTime"

### TAG_OFFSET_TIME_DIGITIZED

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_OFFSET_TIME_DIGITIZED
```

<br />

A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeDigitized tag. The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-". When the offsets are unknown, all the character spaces except colons (":") should be filled with blank characters, or else the Interoperability field should be filled with blank characters. The character string length is 7 Bytes including NULL for termination. When the field is left blank, it is treated as unknown.

- Tag = 36882
- Type = String
- Length = 7
- Default = None

<br />

<br />

Constant Value: "OffsetTimeDigitized"

### TAG_OFFSET_TIME_ORIGINAL

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_OFFSET_TIME_ORIGINAL
```

<br />

A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeOriginal tag. The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-". When the offsets are unknown, all the character spaces except colons (":") should be filled with blank characters, or else the Interoperability field should be filled with blank characters. The character string length is 7 Bytes including NULL for termination. When the field is left blank, it is treated as unknown.

- Tag = 36881
- Type = String
- Length = 7
- Default = None

<br />

<br />

Constant Value: "OffsetTimeOriginal"

### TAG_ORF_ASPECT_FRAME

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ORF_ASPECT_FRAME
```

Type is int. See Olympus Image Processing tags in http://www.exiv2.org/tags-olympus.html.

<br />

Constant Value: "AspectFrame"

### TAG_ORF_PREVIEW_IMAGE_LENGTH

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ORF_PREVIEW_IMAGE_LENGTH
```

Type is int. See Olympus Camera Settings tags in http://www.exiv2.org/tags-olympus.html.

<br />

Constant Value: "PreviewImageLength"

### TAG_ORF_PREVIEW_IMAGE_START

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ORF_PREVIEW_IMAGE_START
```

Type is int. See Olympus Camera Settings tags in http://www.exiv2.org/tags-olympus.html.

<br />

Constant Value: "PreviewImageStart"

### TAG_ORF_THUMBNAIL_IMAGE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ORF_THUMBNAIL_IMAGE
```

Type is undefined. See Olympus MakerNote tags in http://www.exiv2.org/tags-olympus.html.

<br />

Constant Value: "ThumbnailImage"

### TAG_ORIENTATION

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ORIENTATION
```

Type is int.

<br />

Constant Value: "Orientation"

### TAG_PHOTOMETRIC_INTERPRETATION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_PHOTOMETRIC_INTERPRETATION
```

Type is int.

<br />

Constant Value: "PhotometricInterpretation"

### TAG_PIXEL_X_DIMENSION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_PIXEL_X_DIMENSION
```

Type is int.

<br />

Constant Value: "PixelXDimension"

### TAG_PIXEL_Y_DIMENSION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_PIXEL_Y_DIMENSION
```

Type is int.

<br />

Constant Value: "PixelYDimension"

### TAG_PLANAR_CONFIGURATION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_PLANAR_CONFIGURATION
```

Type is int.

<br />

Constant Value: "PlanarConfiguration"

### TAG_PRIMARY_CHROMATICITIES

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_PRIMARY_CHROMATICITIES
```

Type is rational.

<br />

Constant Value: "PrimaryChromaticities"

### TAG_REFERENCE_BLACK_WHITE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_REFERENCE_BLACK_WHITE
```

Type is rational.

<br />

Constant Value: "ReferenceBlackWhite"

### TAG_RELATED_SOUND_FILE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RELATED_SOUND_FILE
```

Type is String.

<br />

Constant Value: "RelatedSoundFile"

### TAG_RESOLUTION_UNIT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RESOLUTION_UNIT
```

Type is int.

<br />

Constant Value: "ResolutionUnit"

### TAG_ROWS_PER_STRIP

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_ROWS_PER_STRIP
```

Type is int.

<br />

Constant Value: "RowsPerStrip"

### TAG_RW2_ISO

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RW2_ISO
```

Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/\~phil/exiftool/TagNames/PanasonicRaw.html

<br />

Constant Value: "ISO"

### TAG_RW2_JPG_FROM_RAW

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RW2_JPG_FROM_RAW
```

Type is undefined. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/\~phil/exiftool/TagNames/PanasonicRaw.html

<br />

Constant Value: "JpgFromRaw"

### TAG_RW2_SENSOR_BOTTOM_BORDER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RW2_SENSOR_BOTTOM_BORDER
```

Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/\~phil/exiftool/TagNames/PanasonicRaw.html

<br />

Constant Value: "SensorBottomBorder"

### TAG_RW2_SENSOR_LEFT_BORDER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RW2_SENSOR_LEFT_BORDER
```

Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/\~phil/exiftool/TagNames/PanasonicRaw.html

<br />

Constant Value: "SensorLeftBorder"

### TAG_RW2_SENSOR_RIGHT_BORDER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RW2_SENSOR_RIGHT_BORDER
```

Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/\~phil/exiftool/TagNames/PanasonicRaw.html

<br />

Constant Value: "SensorRightBorder"

### TAG_RW2_SENSOR_TOP_BORDER

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_RW2_SENSOR_TOP_BORDER
```

Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/\~phil/exiftool/TagNames/PanasonicRaw.html

<br />

Constant Value: "SensorTopBorder"

### TAG_SAMPLES_PER_PIXEL

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SAMPLES_PER_PIXEL
```

Type is int.

<br />

Constant Value: "SamplesPerPixel"

### TAG_SATURATION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SATURATION
```

Type is int.

<br />

Constant Value: "Saturation"

### TAG_SCENE_CAPTURE_TYPE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SCENE_CAPTURE_TYPE
```

Type is int.

<br />

Constant Value: "SceneCaptureType"

### TAG_SCENE_TYPE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SCENE_TYPE
```

Type is String.

<br />

Constant Value: "SceneType"

### TAG_SENSING_METHOD

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SENSING_METHOD
```

Type is int.

<br />

Constant Value: "SensingMethod"

### TAG_SHARPNESS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SHARPNESS
```

Type is int.

<br />

Constant Value: "Sharpness"

### TAG_SHUTTER_SPEED_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SHUTTER_SPEED_VALUE
```

Type is rational.

<br />

Constant Value: "ShutterSpeedValue"

### TAG_SOFTWARE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SOFTWARE
```

Type is String.

<br />

Constant Value: "Software"

### TAG_SPATIAL_FREQUENCY_RESPONSE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SPATIAL_FREQUENCY_RESPONSE
```

Type is String.

<br />

Constant Value: "SpatialFrequencyResponse"

### TAG_SPECTRAL_SENSITIVITY

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SPECTRAL_SENSITIVITY
```

Type is String.

<br />

Constant Value: "SpectralSensitivity"

### TAG_STRIP_BYTE_COUNTS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_STRIP_BYTE_COUNTS
```

Type is int.

<br />

Constant Value: "StripByteCounts"

### TAG_STRIP_OFFSETS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_STRIP_OFFSETS
```

Type is int.

<br />

Constant Value: "StripOffsets"

### TAG_SUBFILE_TYPE

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBFILE_TYPE
```

Type is int.

<br />

Constant Value: "SubfileType"

### TAG_SUBJECT_AREA

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBJECT_AREA
```

Type is int.

<br />

Constant Value: "SubjectArea"

### TAG_SUBJECT_DISTANCE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBJECT_DISTANCE
```

Type is double.

<br />

Constant Value: "SubjectDistance"

### TAG_SUBJECT_DISTANCE_RANGE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBJECT_DISTANCE_RANGE
```

Type is int.

<br />

Constant Value: "SubjectDistanceRange"

### TAG_SUBJECT_LOCATION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBJECT_LOCATION
```

Type is int.

<br />

Constant Value: "SubjectLocation"

### TAG_SUBSEC_TIME

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBSEC_TIME
```

Type is String.

<br />

Constant Value: "SubSecTime"

### TAG_SUBSEC_TIME_DIG

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBSEC_TIME_DIG
```

<br />

**This constant was deprecated in API level 24.**   

use `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_DIGITIZED` instead

Type is String.

<br />

Constant Value: "SubSecTimeDigitized"

### TAG_SUBSEC_TIME_DIGITIZED

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBSEC_TIME_DIGITIZED
```

Type is String.

<br />

Constant Value: "SubSecTimeDigitized"

### TAG_SUBSEC_TIME_ORIG

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBSEC_TIME_ORIG
```

<br />

**This constant was deprecated in API level 24.**   

use `https://developer.android.com/reference/android/media/ExifInterface#TAG_SUBSEC_TIME_ORIGINAL` instead

Type is String.

<br />

Constant Value: "SubSecTimeOriginal"

### TAG_SUBSEC_TIME_ORIGINAL

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_SUBSEC_TIME_ORIGINAL
```

Type is String.

<br />

Constant Value: "SubSecTimeOriginal"

### TAG_THUMBNAIL_IMAGE_LENGTH

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_THUMBNAIL_IMAGE_LENGTH
```

Type is int.

<br />

Constant Value: "ThumbnailImageLength"

### TAG_THUMBNAIL_IMAGE_WIDTH

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_THUMBNAIL_IMAGE_WIDTH
```

Type is int.

<br />

Constant Value: "ThumbnailImageWidth"

### TAG_THUMBNAIL_ORIENTATION

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_THUMBNAIL_ORIENTATION
```

Type is int.

<br />

Constant Value: "ThumbnailOrientation"

### TAG_TRANSFER_FUNCTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_TRANSFER_FUNCTION
```

Type is int.

<br />

Constant Value: "TransferFunction"

### TAG_USER_COMMENT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_USER_COMMENT
```

Type is String.

<br />

Constant Value: "UserComment"

### TAG_WHITE_BALANCE

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_WHITE_BALANCE
```

Type is int.

<br />

Constant Value: "WhiteBalance"

### TAG_WHITE_POINT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_WHITE_POINT
```

Type is rational.

<br />

Constant Value: "WhitePoint"

### TAG_XMP

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_XMP
```

Type is byte\[\]. See [Extensible Metadata Platform (XMP)](https://en.wikipedia.org/wiki/Extensible_Metadata_Platform) for details on contents.

<br />

Constant Value: "Xmp"

### TAG_X_RESOLUTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_X_RESOLUTION
```

Type is rational.

<br />

Constant Value: "XResolution"

### TAG_Y_CB_CR_COEFFICIENTS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_Y_CB_CR_COEFFICIENTS
```

Type is rational.

<br />

Constant Value: "YCbCrCoefficients"

### TAG_Y_CB_CR_POSITIONING

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_Y_CB_CR_POSITIONING
```

Type is int.

<br />

Constant Value: "YCbCrPositioning"

### TAG_Y_CB_CR_SUB_SAMPLING

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_Y_CB_CR_SUB_SAMPLING
```

Type is int.

<br />

Constant Value: "YCbCrSubSampling"

### TAG_Y_RESOLUTION

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String TAG_Y_RESOLUTION
```

Type is rational.

<br />

Constant Value: "YResolution"

### WHITEBALANCE_AUTO

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int WHITEBALANCE_AUTO
```

<br />

<br />

Constant Value: 0 (0x00000000)

### WHITEBALANCE_MANUAL

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int WHITEBALANCE_MANUAL
```

<br />

<br />

Constant Value: 1 (0x00000001)

## Public constructors

### ExifInterface

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ExifInterface (File file)
```

Reads Exif tags from the specified image file.

<br />

| Parameters ||
|---|---|
| `file` | `File`: the file of the image data. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs while retrieving file descriptor via `https://developer.android.com/reference/java/io/FileInputStream#getFD()`. |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if file is null |

### ExifInterface

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ExifInterface (FileDescriptor fileDescriptor)
```

Reads Exif tags from the specified image file descriptor. Attribute mutation is supported for writable and seekable file descriptors only. This constructor will not rewind the offset of the given file descriptor. Developers should close the file descriptor after use.

<br />

| Parameters ||
|---|---|
| `fileDescriptor` | `FileDescriptor`: the file descriptor of the image data. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an error occurs while duplicating the file descriptor via `https://developer.android.com/reference/android/system/Os#dup(java.io.FileDescriptor)`. |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if file descriptor is null |

### ExifInterface

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ExifInterface (InputStream inputStream)
```

Reads Exif tags from the specified image input stream. Attribute mutation is not supported for input streams. The given input stream will proceed from its current position. Developers should close the input stream after use. This constructor is not intended to be used with an input stream that performs any networking operations.

<br />

| Parameters ||
|---|---|
| `inputStream` | `InputStream`: the input stream that contains the image data. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException` | if the input stream is null |
| `https://developer.android.com/reference/java/io/IOException` |   |

### ExifInterface

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ExifInterface (InputStream inputStream, 
                int streamType)
```

Reads Exif tags from the specified image input stream based on the stream type. Attribute mutation is not supported for input streams. The given input stream will proceed from its current position. Developers should close the input stream after use. This constructor is not intended to be used with an input stream that performs any networking operations.

<br />

| Parameters ||
|---|---|
| `inputStream` | `InputStream`: the input stream that contains the image data. This value cannot be `null`. <br /> |
| `streamType` | `int`: the type of input stream. Value is one of the following: - `https://developer.android.com/reference/android/media/ExifInterface#STREAM_TYPE_FULL_IMAGE_DATA` - `https://developer.android.com/reference/android/media/ExifInterface#STREAM_TYPE_EXIF_DATA_ONLY` |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs while retrieving file descriptor via `https://developer.android.com/reference/java/io/FileInputStream#getFD()`. |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if the input stream is null |

### ExifInterface

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ExifInterface (String filename)
```

Reads Exif tags from the specified image file.

<br />

| Parameters ||
|---|---|
| `filename` | `String`: the name of the file of the image data. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs while retrieving file descriptor via `https://developer.android.com/reference/java/io/FileInputStream#getFD()`. |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if file name is null |

## Public methods

### getAltitude

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public double getAltitude (double defaultValue)
```

Return the altitude in meters. If the exif tag does not exist, return <var translate="no">defaultValue</var>.

<br />

| Parameters ||
|---|---|
| `defaultValue` | `double`: the value to return if the tag is not available. <br /> |

| Returns ||
|---|---|
| `double` | <br /> |

### getAttribute

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getAttribute (String tag)
```

Returns the value of the specified tag or `null` if there is no such tag in the image file.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: the name of the tag. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | <br /> |

### getAttributeBytes

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public byte[] getAttributeBytes (String tag)
```

Returns the raw bytes for the value of the requested tag inside the image file, or `null` if the tag is not contained.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `byte[]` | raw bytes for the value of the requested tag, or `null` if no tag was found. <br /> |

### getAttributeDouble

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public double getAttributeDouble (String tag, 
                double defaultValue)
```

Returns the double value of the tag that is specified as rational or contains a double-formatted value. If there is no such tag in the image file or the value cannot be parsed as double, return <var translate="no">defaultValue</var>.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: the name of the tag. This value cannot be `null`. <br /> |
| `defaultValue` | `double`: the value to return if the tag is not available. <br /> |

| Returns ||
|---|---|
| `double` | <br /> |

### getAttributeInt

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getAttributeInt (String tag, 
                int defaultValue)
```

Returns the integer value of the specified tag. If there is no such tag in the image file or the value cannot be parsed as integer, return <var translate="no">defaultValue</var>.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: the name of the tag. This value cannot be `null`. <br /> |
| `defaultValue` | `int`: the value to return if the tag is not available. <br /> |

| Returns ||
|---|---|
| `int` | <br /> |

### getAttributeRange

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long[] getAttributeRange (String tag)
```

Returns the offset and length of the requested tag inside the image file, or `null` if the tag is not contained.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `long[]` | two-element array, the offset in the first value, and length in the second, or `null` if no tag was found. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if `https://developer.android.com/reference/android/media/ExifInterface#saveAttributes()` has been called since the underlying file was initially parsed, since that means offsets may have changed. |

### getDateTime

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getDateTime ()
```

Returns parsed `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME` value, or -1 if unavailable or invalid.   

Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z.

<br />

| Returns ||
|---|---|
| `long` | Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. <br /> |

### getDateTimeDigitized

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getDateTimeDigitized ()
```

Returns parsed `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME_DIGITIZED` value, or -1 if unavailable or invalid.   

Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z.

<br />

| Returns ||
|---|---|
| `long` | Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. <br /> |

### getDateTimeOriginal

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getDateTimeOriginal ()
```

Returns parsed `https://developer.android.com/reference/android/media/ExifInterface#TAG_DATETIME_ORIGINAL` value, or -1 if unavailable or invalid.   

Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z.

<br />

| Returns ||
|---|---|
| `long` | Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. <br /> |

### getGpsDateTime

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getGpsDateTime ()
```

Returns number of milliseconds since Jan. 1, 1970, midnight UTC. Returns -1 if the date time information if not available.

<br />

| Returns ||
|---|---|
| `long` | <br /> |

### getLatLong

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean getLatLong (float[] output)
```

Stores the latitude and longitude value in a float array. The first element is the latitude, and the second element is the longitude. Returns false if the Exif tags are not available.

<br />

| Parameters ||
|---|---|
| `output` | `float` <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### getThumbnail

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public byte[] getThumbnail ()
```

Returns the JPEG compressed thumbnail inside the image file, or `null` if there is no JPEG compressed thumbnail. The returned data can be decoded using `https://developer.android.com/reference/android/graphics/BitmapFactory#decodeByteArray(byte[],%20int,%20int)`

<br />

| Returns ||
|---|---|
| `byte[]` | <br /> |

### getThumbnailBitmap

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Bitmap getThumbnailBitmap ()
```

Creates and returns a Bitmap object of the thumbnail image based on the byte array and the thumbnail compression value, or `null` if the compression type is unsupported.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/graphics/Bitmap` | <br /> |

### getThumbnailBytes

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public byte[] getThumbnailBytes ()
```

Returns the thumbnail bytes inside the image file, regardless of the compression type of the thumbnail image.

<br />

| Returns ||
|---|---|
| `byte[]` | <br /> |

### getThumbnailRange

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long[] getThumbnailRange ()
```

Returns the offset and length of thumbnail inside the image file, or `null` if either there is no thumbnail or the thumbnail bytes are stored non-consecutively.

<br />

| Returns ||
|---|---|
| `long[]` | two-element array, the offset in the first value, and length in the second, or `null` if no thumbnail was found or the thumbnail strips are not placed consecutively. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if `https://developer.android.com/reference/android/media/ExifInterface#saveAttributes()` has been called since the underlying file was initially parsed, since that means offsets may have changed. |

### hasAttribute

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean hasAttribute (String tag)
```

Returns true if the image file has the given attribute defined.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: the name of the tag. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### hasThumbnail

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean hasThumbnail ()
```

Returns true if the image file has a thumbnail.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### isSupportedMimeType

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isSupportedMimeType (String mimeType)
```

Returns whether ExifInterface currently supports reading data from the specified mime type or not.

<br />

| Parameters ||
|---|---|
| `mimeType` | `String`: the string value of mime type. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isThumbnailCompressed

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isThumbnailCompressed ()
```

Returns true if thumbnail image is JPEG Compressed, or false if either thumbnail image does not exist or thumbnail image is uncompressed.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### saveAttributes

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void saveAttributes ()
```

Save the tag data into the original image file. This is expensive because it involves copying all the data from one file to another and deleting the old file and renaming the other. It's best to use `https://developer.android.com/reference/android/media/ExifInterface#setAttribute(java.lang.String,%20java.lang.String)` to set all attributes to write and make a single call rather than multiple calls for each attribute.

This method is supported for JPEG, PNG, and WebP files.

Note: after calling this method, any attempts to obtain range information from `https://developer.android.com/reference/android/media/ExifInterface#getAttributeRange(java.lang.String)` or `https://developer.android.com/reference/android/media/ExifInterface#getThumbnailRange()` will throw `https://developer.android.com/reference/java/lang/IllegalStateException`, since the offsets may have changed in the newly written file.

For WebP format, the Exif data will be stored as an Extended File Format, and it may not be supported for older readers.

For PNG format, the Exif data will be stored as an "eXIf" chunk as per "Extensions to the PNG 1.2 Specification, Version 1.5.0".

**Warning:** Calling this method on a DNG-based instance of `ExifInterface` may result in the original image file being overwritten with invalid data on some versions of Android 13 (API 33).

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### setAttribute

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setAttribute (String tag, 
                String value)
```

Set the value of the specified tag.

<br />

| Parameters ||
|---|---|
| `tag` | `String`: the name of the tag. This value cannot be `null`. <br /> |
| `value` | `String`: the value of the tag. This value may be `null`. <br /> |