0
我目前通過創建一個Intent安卓:如何訪問,複製和操作音樂文件
Intent intent = new Intent();
intent.setType("audio/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Audio "), MUSIC_CODE);
當媒體選擇出現訪問音樂文件,我可以成功地選擇一個文件,並提取相應的URI
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data){
if(requestCode == MUSIC_CODE){
if(resultCode == RESULT_OK){
//uri.getPath()
}
}
super.onActivityResult(requestCode, resultCode, data);
}
使用URI的路徑(例如:/document/primary:music/filename.ext),實際上,我怎麼訪問該文件對其進行操作或複製?在此先感謝您的任何鏈接或提示,謝謝!
編輯:我試圖讓從URI一個真正的路徑,但沒有成功,但如下(方法不斷返回null):
public String getRealPathFromURI(Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Audio.Media.DATA };
cursor = getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
finally {
if (cursor != null) {
cursor.close();
}
}
}
我也想你的建議下,但沒有成功 - 請看上面的編輯 –
該代碼看起來不錯。但爲了訪問MediaStore,您應該在清單文件中擁有** android.permission.READ_EXTERNAL_STORAGE **權限。 –