我如何获得有关用户选择的音频文件的信息? (使用SAF和MediaStore)

问题描述 投票:0回答:1

我不明白如何从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._IDALBUM_IDARTIST_ID

我不明白如何从MediaStore请求有关文件(由用户选择)的数据。 1)我像这样打开文件选择器public static void launchPicker(Fragment f){Intent ...

java android mediastore storage-access-framework
1个回答
0
投票

我这样做:

© www.soinside.com 2019 - 2024. All rights reserved.