我不明白如何从MediaStore请求有关文件(由用户选择)的数据。
1)我这样打开文件选择器>
public static void launchPicker(Fragment f) { Intent pickerIntent = new Intent(Intent.ACTION_GET_CONTENT); pickerIntent.setType("audio/mpeg"); pickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, true); pickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); f.startActivityForResult(pickerIntent, REQUEST_CODE); }
2)从意图中获取数据
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (data != null) { //multiselection only ClipData clipData = data.getClipData(); if (clipData != null) { List<Uri> results = new ArrayList<>(); for(int i = 0; i < clipData.getItemCount(); i++) { Uri uri = clipData.getItemAt(i).getUri(); if (uri != null) { results.add(uri); } } //TODO process result } } }
3)现在,我有了DocumentUris的列表。我下一步应该怎么做?
MediaSoter可以通过Mediastore.getDocumentUri()将mediaUri转换为documentUri,但我找不到将documentUri转换为mediaUri的方法。
我想从MediaStore获取以下字段:MediaStore.Audio.Media._ID,ALBUM_ID,ARTIST_ID。
我不明白如何从MediaStore请求有关文件(由用户选择)的数据。 1)我像这样打开文件选择器public static void launchPicker(Fragment f){Intent ...
我这样做: