Получение списка доступных рингтонов на Android

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

Ближайшая вещь, которую я нашел, здесь, но опять же это просто для установки мелодии по умолчанию. Какие-нибудь идеи? Он может быть в или из рингтоновщика.

Ответ 1

RingtoneManager - это то, что вы ищете. Вам просто нужно использовать setType, чтобы установить TYPE_RINGTONE, а затем перебираем курсор, предоставленный getCursor.

Это рабочий пример гипотетического метода, который возвращает массив URI, с той лишь небольшой разницей, что он ищет сигналы тревоги вместо рингтонов:

RingtoneManager ringtoneMgr = new RingtoneManager(this);
ringtoneMgr.setType(RingtoneManager.TYPE_ALARM);
Cursor alarmsCursor = ringtoneMgr.getCursor();
int alarmsCount = alarmsCursor.getCount();
if (alarmsCount == 0 && !alarmsCursor.moveToFirst()) {
    return null;
}
Uri[] alarms = new Uri[alarmsCount];
while(!alarmsCursor.isAfterLast() && alarmsCursor.moveToNext()) {
    int currentPosition = alarmsCursor.getPosition();
    alarms[currentPosition] = ringtoneMgr.getRingtoneUri(currentPosition);
}
alarmsCursor.close();
return alarms;

Ответ 2

Это вернет вам название и URI всех доступных мелодий. Делай с ними что хочешь!

public Map<String, String> getNotifications() {
    RingtoneManager manager = new RingtoneManager(this);
    manager.setType(RingtoneManager.TYPE_RINGTONE);
    Cursor cursor = manager.getCursor();

    Map<String, String> list = new HashMap<>();
    while (cursor.moveToNext()) {
        String notificationTitle = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX);
        String notificationUri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX) + "/" + cursor.getString(RingtoneManager.ID_COLUMN_INDEX);

        list.put(notificationTitle, notificationUri);
    }

    return list;
}

Ответ 3

я использую телефон iphone со скучной мелодией по умолчанию, я пытаюсь изменить свою мелодию звонка на лучшие и лучшие мелодии, которые мне нравятся, каждый раз, когда звонит телефон, моя любимая мелодия звонка, это здорово