Android GET_内容音频文件

Android GET_内容音频文件,android,audio,android-intent,Android,Audio,Android Intent,在以下情况下,我面临一些问题: LOAD_AUDIO_REQUEST_CODE = 1000; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/*"); startActivityForResult(intent, LOAD_AUDIO_REQUEST_CODE); public void onActivityResult(int requestCode, int resultCode,

在以下情况下,我面临一些问题:

LOAD_AUDIO_REQUEST_CODE = 1000;

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(intent, LOAD_AUDIO_REQUEST_CODE);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
     Uri uri = data.getData();
     Log.i(TAG, "uri path : " uri.getPath());
}
onActivityResult
中,数据路径指示
/document/audio:458
,但我想获得一个类似
/storage/simulated/0/Music/music0.mp3的路径

如何将
/document/audio:458
转换为
/storage/../music0.mp3

在onActivityResult数据路径中指示/document/audio:458

您收到了
内容:
Uri
。这在较新版本的Android上相当正常。Android的未来版本可能会阻止
文件:
Uri

如何将/document/audio:458转换为/storage/…/music0.mp3

你没有。不必存在与给定的
Uri
关联的文件。
Uri
可能指向:

  • 外部存储器上的本地文件
  • 另一个应用程序的内部存储上的本地文件
  • 可移动存储上的本地文件
  • 加密的本地文件,需要动态解密
  • 数据库中
    BLOB
    列中保存的字节流
  • 需要先由其他应用程序下载的内容
  • ……等等
相反,请使用
ContentResolver
和:

  • openInputStream()
    读取与内容关联的字节
  • getType()
    获取与内容关联的MIME类型
  • query()
    OpenableColumns
    获取与内容关联的大小和显示名称