Skip to content Skip to sidebar Skip to footer

How To Get Exif Data From An Inputstream Rather Than A File?

The reason why I am asking this is because the callback of the file chooser Intent returns an Uri. Open file chooser via Intent: Intent intent = new Intent(); intent.setType('image

Solution 1:

After the 25.1.0 support library was introduced, now is possible to read exif data from URI contents (content:// or file://) through an InputStream.

Example: First add this line to your gradle file:

compile 'com.android.support:exifinterface:25.1.0'

Uri uri; // the URI you've received from the other app
InputStream in;
try {
  in = getContentResolver().openInputStream(uri);
  ExifInterfaceexifInterface=newExifInterface(in);
  // Now you can extract any Exif tag you want// Assuming the image is a JPEG or supported raw format
} catch (IOException e) {
  // Handle any errors
} finally {
  if (in != null) {
    try {
      in.close();
    } catch (IOException ignored) {}
  }
}

For more information check: Introducing the ExifInterface Support Library, ExifInterface.

Post a Comment for "How To Get Exif Data From An Inputstream Rather Than A File?"