查询文件uri与内容解析器?

时间:2015-03-09 09:41:41

标签: android

我使用以下简单代码来研究图像的方向。

Cursor cursor = getContentResolver().query(photoUri,
            new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);

当photoUri是内容uri时,即从内容开始://光标被正确检索。当我从图库中选择图像时,我得到一个contentUri。

然而,当photoUri是fileUri时,即从file://a/b/c.jpg开始(当我从相机捕获图像时发生),光标为空。

是什么给出的?我对这种情况感到很困惑。

1 个答案:

答案 0 :(得分:1)

回答评论:

你做不到。 MediaStore.Images.ImageColumns.ORIENTATION是存储在content://数据库中的数据库列。 file://数据库不包含此类列,因此您无法查询它。

回答问题:

要提取方向,Android具有原生ExifInterface类:https://developer.android.com/reference/android/media/ExifInterface.html

ExifInterface exif = new ExifInterface(filePath);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);