获取铃声-英文名称

时间:2019-06-24 07:59:48

标签: java android android-context ringtonemanager

我想获取手机的铃声,但只能看到英语(非本地化版本)。

我的理论是使用ContextWrapper,并将该上下文语言环境设置为en_US并将该新语言环境传递给RingtoneManager.getRingtone()(基于Set Locale programmatically的代码):

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 :(得分:0)

希望您可以通过以下代码段找到所需的内容:

        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")