如何从Android 13中的应用程序语言识别设备语言



我为我的应用程序添加了对每个应用程序语言的支持,即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——请参阅此处的第一行。

相关内容

  • 没有找到相关文章

最新更新