1
Android 저장 장치에 이미지 또는 비디오 파일을 첨부하고 싶습니다. 갤러리에서 비디오를 선택하면 콘텐츠 URI 경로을 반환합니다.비디오 파일의 콘텐츠 URI에서 파일 경로를 가져 오는 방법은 무엇입니까?
파일 경로을 콘텐츠 URI에서 가져 오는 방법은 무엇입니까?
나는 코드를 다음 시도하지만, 롤리팝에 null를 돌려 :
void pickVideo() {
Intent videoIntent = new Intent(Intent.ACTION_GET_CONTENT);
videoIntent.setType("video/*");
startActivityForResult(videoIntent, PICK_VIDEO_FILE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
if (resultCode != Activity.RESULT_OK)
return;
switch (requestCode) {
case PICK_VIDEO_FILE:
Uri videoUri = data.getData();
String path = getRealPathFromURI(getContext(), videoUri);
Log.d("Video uri path", "path" + path);
if (mChooseFileDialogListener != null) {
mChooseFileDialogListener.onVideoClick(videoUri, HealthRecordViewModel.FILE_TYPE_VIDEO);
}
break;
}
}
}
public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Video.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
나는 안드로이드 프로그래밍에 익숙하다. 이것과 관련된 몇 가지 예를들 수 있습니까? – Pulse
@Pulse :'getContentResolver(). openInputStream (videoURI)'. – CommonsWare
openInputStream (uri)는 InputStream 권한을 반환합니까? 이 파일을 첨부 파일로 어떻게 사용합니까? 내가 얻은 파일을 저장해야하고 내가 저장된 파일을 클릭하면 열 수있는 적절한 응용 프로그램을 사용해야합니다. – Pulse