【发布时间】:2017-04-11 01:02:28
【问题描述】:
我的问题分为两部分,如何获取以下代码来访问此位置: "/storage/emulated/0/Movies/SpecificFolder"
代码:
private Uri getUriFromMediaStore(int position) {
int dataIndex = mMediaStoreCursor.getColumnIndex(MediaStore.Files.FileColumns.DATA);
mMediaStoreCursor.moveToPosition(position);
String dataString = mMediaStoreCursor.getString(dataIndex);
Uri mediaUri = Uri.parse("file://" + dataString);
return mediaUri;
}
而且,到时候我如何从在线服务器访问视频/文件?
我尝试了以下方法:
mediaCursor = getContentResolver().query( MediaStore.Files.getContentUri("external"),
null,
MediaStore.Images.Media.DATA + " like ? ",
new String[] {"%YOUR_FOLDER_NAME%"},
null);
但是,getContentResolver() 只能在我的类扩展“Activity”时使用,它没有,我继承自:
RecyclerView.Adapter<MediaStoreAdapter.ViewHolder>
Java 不允许双重继承。
【问题讨论】:
-
第1部分,你可以试试这个:
File movieDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Movies" + File.separator + "SpecificFolder"); -
尝试
Uri.fromFile(movieDir);获取 Uri。 ;) -
为了显示文件夹中的所有视频,我会试试这个:
movieDir.listFiles();在我确保movieDir.isDirectory()为 true 之后。并通过后缀判断文件是否为视频。 -
@RustFisher 嗯,您的评论合乎逻辑并且应该有效。但我的 gridview 现在只是显示为空白。我试图让我的 gridview 显示文件夹中的所有视频。我也试过:Uri mediaUri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Movies" + File.separator + "SpecificFolder" + dataString);
-
@RustFisher 仍然没有使用 movieDir.listFiles();我想可能是因为我构建使用 getColumnIndex 的方法的方式
标签: android file path uri mediastore