我想獲得SD卡上聲音文件的完整路徑。Android拾取聲音文件路徑 - 完整路徑沒有返回
這將啓動聲音拾取 - 然後我使用Play音樂應用來選擇文件
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setData(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RESULT_SOUNDPICKER);
上的活動結果,我想獲得的完整路徑
case RESULT_SOUNDPICKER: {
Log.d("TAG", "onActivityResult "+requestCode+" "+resultCode);
if (resultCode == RESULT_OK)
{
Uri uri = data.getData();
String filePath = uri.getPath();
Log.d("TAG", "FilePath: "+filePath);
// A song was picked.
Log.d("TAG", "PickSongActivity.onActivityResult: "+data.getDataString());
}
}
但這返回的路徑像
//media/external/audio/media/13085
而不是一個適當的文件保存路徑。 我需要獲取完整路徑,然後才能使用它來播放文件。
謝謝。
解決方案 此方法可用於獲取完整路徑。
private String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(getApplicationContext(), contentUri, proj, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
您添加的解決方案不適用於我 - 我的uri類似於 - content://com.android.externalstorage.documents/document/3C9E-F5D9 ............. 使用您的方法,它會返回給我的空URI: – NarendraJi