1
다음과 같은 URI가 있습니다 : content://com.android.providers.media.documents/document/video%3A818
. 나는 아래의 방법으로 내 서버에 업로드 할 수 있도록 경로를 얻으려고 :Android에서 비디오의 경로를 가져올 수 없습니다.
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;
}
내가 그 방법에서 널 (null)가 계속! 경로를 얻은 후에 File
개체가 필요합니다. 그 메소드가 왜 null 값을 주는가? 내가 여기서 누락 된 것이 있습니까?
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;
}
: