Получить рингтон - английское имя - PullRequest
0 голосов
/ 24 июня 2019

Я хочу получить рингтоны телефона, но вижу только английский (нелокализованная версия).

Моя теория заключалась в использовании ContextWrapper, и для этого языкового стандарта для контекста устанавливается значение en_US, а для этого нового языкового стандарта - RingtoneManager.getRingtone() (код, основанный на Программно для установки языкового стандарта ):

ContextWrapper cw = new ContextWrapper(context);
Context cc = setContextLocale(cw, "en_US"); // This method was copied from the StackOverflow question above ^^
Ringtone defaultRingtone = RingtoneManager.getRingtone(cc,  Settings.System.DEFAULT_RINGTONE_URI);
String sss = defaultRingtone.getTitle(cc);

Так что, да, это не работает, как ожидалось. Есть идеи?

1 Ответ

0 голосов
/ 24 июня 2019

Надеюсь, вы найдете то, что ищете, с помощью следующего фрагмента кода:

        data class Ringtone(
            val _id: String,
            val title: String
        )
        val cursor = RingtoneManager(this).cursor
        cursor.moveToFirst()
        val list = ArrayList<Ringtone>()
        do {
            list.add(Ringtone(
                cursor.getString(0),
                cursor.getString(1)
            ))
        } while (cursor.moveToNext())
        Log.i(TAG, "ringtones list=$list")
...