Я пытаюсь получить полный путь к звуковому файлу на SD-карте.Android Picking Sound File Path - полный путь не возвращается
Это запускает звуковую палитру - тогда я использую Play Music приложение, чтобы выбрать файл
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 ............. Использование вашего метод, он возвращает мне null для этого uri :( – NarendraJi