В моем приложении пользователь должен выбрать аудиофайл, который затем обрабатывает приложение.Проблема в том, что для того, чтобы приложение делало то, что я хочу, с аудиофайлами, мне нужен URI в формате файла.Когда я использую собственный музыкальный проигрыватель Android для поиска аудиофайла в приложении, URI является URI контента, который выглядит следующим образом:
content://media/external/audio/media/710
Однако, используя популярное приложение для управления файлами Astro, я получаюследующее:
file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
С последним мне гораздо удобнее работать, но, конечно, я хочу, чтобы приложение имело функциональность с аудиофайлом, который выбирает пользователь, независимо от программы, которую он использует для просмотра своих файлов.коллекция.Итак, мой вопрос, есть ли способ конвертировать URI в стиле content://
в URI file://
?В противном случае, что бы вы посоветовали мне решить эту проблему?Вот код, который вызывает селектор, для справки:
Intent ringIntent = new Intent();
ringIntent.setType("audio/mp3");
ringIntent.setAction(Intent.ACTION_GET_CONTENT);
ringIntent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(ringIntent, "Select Ringtone"), SELECT_RINGTONE);
Я делаю следующее с URI содержимого:
m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);
Затем выполняем некоторые вещи FileInputStream с указанным файлом.