我在以下情况中面临一些问题:
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/emulated/0/Music/music0.mp3
的路径。
如何将/document/audio:458
转换为/storage/.../music0.mp3
?
答案 0 :(得分:1)
在onActivityResult数据路径中指示/ document / audio:458。
您收到了content:
Uri
。这在较新版本的Android上相当正常。 Android的未来版本可能会阻止file:
Uri
值。
如何转换/文档/音频:458到/ storage /..../ music0.mp3
你不是。没有与给定Uri
关联的文件。 Uri
可能指向:
BLOB
列中保存的字节流相反,请使用ContentResolver
和:
openInputStream()
读取与内容相关的字节getType()
获取与内容关联的MIME类型query()
和OpenableColumns
获取与内容相关联的尺寸和显示名称