Я пишу приложение, в котором пользователю предлагается выбрать аудиофайл, который я затем получу в качестве Uri (я использую Intent.ACTION_PICK).
Как сохранить данные в следующий разчто приложение открыто, оно может использовать этот Uri в MediaPlayer.
Я попытался сохранить в SharedPreferences с помощью uri.toString () и загрузить с Uri.Parse, но когда я использую его в MediaPlayer, я получаю ошибку setData fail.
private void SaveSettings(Uri uri) throws FileNotFoundException
{
SharedPreferences pref = getSharedPreferences(APP, MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("uri", uri.toString());
editor.commit();
}
// when calling: _uri = LoadSettings();
private Uri LoadSettings()
{
SharedPreferences pref = getSharedPreferences(APP, MODE_PRIVATE);
String str = pref.getString("uri", null);
if(str == null)
{
return null;
}
return Uri.parse(Uri.encode(str));
}
private void PlaySound() throws IOException
{
if(!_paused)
{
_mp = new MediaPlayer();
_mp.setDataSource(this, _uri); // this fails
_mp.prepare();
}
_paused = false;
_mp.start();
}
Буду признателен за вашу помощь.