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