Android ACTION_RINGTONE_PICKER не показывает пользовательский рингтон - PullRequest
0 голосов
/ 31 января 2019

Так что я искал вокруг Google и SO, и я не могу найти ответ.Сначала я просто пытался показать звуки своих приложений из необработанной папки в моем приложении, когда я позволил пользователю изменять свои звуки в моем приложении, решил, что требуется пользовательское меню и слишком много работы для двух звуков.

Итак, я начал копировать их на само устройство, проблема в том, что они все еще не отображаются на ACTION_RINGTONE_PICKER, хотя я могу видеть их на устройстве вручную (если я перехожу к этомупапка).Есть ли другой путь, в котором я должен их хранить?Я также попытался перезагрузить устройство после копирования.

Вот как я копирую файлы:

File rootDirectory = Environment.getExternalStorageDirectory();
File folder = new File(rootDirectory + File.separator +"My" + File.separator + "ringtone");

fileOutputStream = new FileOutputStream(
                        new File(folder, "Custom_Sound.mp3"));

                byte[] buffer = new byte[1024];
                int length;
                while ((length = inputStream.read(buffer)) > 0) {
                    fileOutputStream.write(buffer, 0, length);
                }

                inputStream.close();
                fileOutputStream.close();

Вот как я получаю список мелодий звонка:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Notification Sound");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
this.startActivityForResult(intent, requestCode);

У меня есть следующее в манифесте, и я проверяю разрешения во время выполнения:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
...