2016-03-09 42 views
0

我在以下情况下遇到了一些问题。Android GET_CONTENT音频文件

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数据路径指示/文件/音频:458。

,但我希望得到像/storage/emulated/0/Music/music0.mp3

如何转换/文件/音频anothor路径:458 /storage/..../music0.mp3

帮助

回答

0

在onActivityResult数据路径指示/文件/音频:458。

您收到content:Uri。在较新版本的Android上这是相当正常的。未来版本的Android可能会阻止file:Uri值。

如何转换/文件/音频:458 /storage/..../music0.mp3

你不知道。不一定要有与给定Uri相关联的文件。这Uri可能指向:

  • 在外部存储设备的本地文件
  • 内部存储本地文件的其他应用程序
  • 移动存储本地文件
  • 经过加密和本地文件需要立即解密
  • 保存在数据库的BLOB列中的字节流
  • 需要先由其他应用下载的一段内容
  • ...等等

相反,使用ContentResolver和:

  • openInputStream()与内容相关联的读取字节
  • getType()获得与相关联的MIME类型content
  • query() and the OpenableColumns to get the size and display name associated with the content