Android DocumentsContract.getDocumentId(URI)中的URI异常无效
我正在尝试获取我保存的图像的文档id,我正在将图像文件保存到设备中的以下外部存储器中Android DocumentsContract.getDocumentId(URI)中的URI异常无效,android,Android,我正在尝试获取我保存的图像的文档id,我正在将图像文件保存到设备中的以下外部存储器中 file:///storage/emulated/0/Pictures/BeautifulFaces/kvh_20160420T225141.jpg 查询后 public String checkIfImageIsRotated(Uri image_uri){ Log.i(LOG_TAG, ">>>>> START "); int rotation =0;
file:///storage/emulated/0/Pictures/BeautifulFaces/kvh_20160420T225141.jpg
查询后
public String checkIfImageIsRotated(Uri image_uri){
Log.i(LOG_TAG, ">>>>> START ");
int rotation =0;
String[] selection = new String[] { MediaStore.Images.Media._ID,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.DATE_TAKEN,
MediaStore.Images.Media.ORIENTATION};
String selectionArgs = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ?";
String[] args = new String[]{FOLDER_NAME};
String sortOrder = MediaStore.Images.Media.DATE_TAKEN + " DESC";
ContentResolver content = mContext.getContentResolver();
Cursor mediaCursor = content.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
selection ,
selectionArgs,
args,
sortOrder);
//select of columns
//MediaStore.Images.ImageColumns.ORIENTATION
//MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME
if (mediaCursor != null && mediaCursor.getCount() !=0 ) {
if(mediaCursor.moveToNext()){
Log.i(LOG_TAG, ">>>>> media cursor not null ");
String orientation = mediaCursor.getString(4);
String bucket_display_name = mediaCursor.getString(1);
image_data_path = mediaCursor.getString(2);
Log.i(LOG_TAG, ">>>>> rotation - " + orientation + ", bucket display name - " + bucket_display_name + ", data - " + image_data_path);
}
mediaCursor.close();
}
Log.i(LOG_TAG, ">>>>> END ");
return image_data_path;
}
图像\数据\路径为
/storage/emulated/0/Pictures/BeautifulFaces/kvh_20160420T225141.jpg
现在,当我尝试执行DocumentsContract.getDocumentId(uri)时,其中uri是顶部提到的文件uri或从游标返回的图像\数据\路径,在这两种情况下,我都会遇到以下错误
Caused by: java.lang.IllegalArgumentException: Invalid URI: file:///storage/emulated/0/Pictures/BeautifulFaces/kvh_20160420T225141.jpg
或
无法理解Document.getDocumentId无法解析Uri的原因
谢谢好吧,它们不是由a生成的文档URI-它们至少应该以
内容开始://
。你为什么期望它们是文档URI?你找到答案了吗?我使用DocumentFileclass和从SAF UI获取的Uri保存图像(返回content/:com.android.externalstorage…),但我需要Uri来获取保存的图像,并使用文件类在其中写入EXIF数据。
Caused by: java.lang.IllegalArgumentException: Invalid URI: /storage/emulated/0/Pictures/BeautifulFaces/kvh_20160420T225141.jpg