无法获取Android中视频的路径
我有这样一个URI:无法获取Android中视频的路径,android,uri,Android,Uri,我有这样一个URI:content://com.android.providers.media.documents/document/video%3A818。我正在尝试获取路径,以便使用以下方法上载到我的服务器: private String getRealPathFromURIVideo(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; CursorLoader loader = new Cu
content://com.android.providers.media.documents/document/video%3A818
。我正在尝试获取路径,以便使用以下方法上载到我的服务器:
private String getRealPathFromURIVideo(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String result = cursor.getString(column_index);
cursor.close();
return result;
}
我还尝试了以下方法:
private String getFilePathFromContentUri(Uri selectedVideoUri) {
String filePath;
String[] filePathColumn = {MediaStore.MediaColumns.DATA};
Cursor cursor = getContentResolver().query(selectedVideoUri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
filePath = cursor.getString(columnIndex);
cursor.close();
return filePath;
}
我一直从那个方法得到空值!获取路径后,我需要
文件
对象。为什么那个方法给我空值?这里有我遗漏的东西吗?我可以这样做:
private String getRealPathFromURIForVideo(Uri selectedVideoUri) {
String wholeID = DocumentsContract.getDocumentId(selectedVideoUri);
String id = wholeID.split(":")[1];
String[] column = { MediaStore.Video.Media.DATA };
String sel = MediaStore.Video.Media._ID + "=?";
Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, column, sel, new String[]{ id }, null);
String filePath = "";
int columnIndex = cursor.getColumnIndex(column[0]);
if (cursor.moveToFirst()) {
filePath = cursor.getString(columnIndex);
}
cursor.close();
return filePath;
}