我为我的应用程序添加了对每个应用程序语言的支持,即android 13功能,现在它既有英语也有俄语。我可以从设置中更改应用程序语言,无需更改设备语言。现在出于分析目的,我需要了解应用程序语言和设备语言。但如果我的设备是英文的,应用程序是俄文的,我总是收到俄文-
Resources.getSystem().configuration.locales.get(0).language - ru
context.resources.configuration.locales[0].language - ru
Locale.getDefault().language - ru
我希望收到的en
Resources.getSystem().configuration.locales.get(0).language
以及ru来自
context.resources.configuration.locales[0].language
我很乐意得到的任何帮助
系统区域设置列表可从LocaleManagerCompat.getSystemLocales(Context)
的androidx.core:core:1.9.0-beta01
或更高版本中获得。
我一直在使用这些:
AppCompatDelegate.getApplicationLocales() // app locales
LocaleManagerCompat.getSystemLocales(Context) // system locales
如果没有应用程序级别设置,则CCD_ 3可以返回空数组CCD_。在这种情况下,将使用系统区域设置。
为了保持一致性,我还使用了AppCompatDelegate.setApplicationLocales(LocaleListCompat)
。
我不确定是否有非Compat类可用于仅瞄准API 33,但这目前对我有效,直到API 27。
正如另一个答案中所提到的,您需要导入androidx.appcompat:appcompat:1.6.0-beta01
——请参阅此处的第一行。