Android在API级别33中引入了每个应用程序的语言偏好设置,使您可以更改应用程序语言,而不受系统语言的影响。
为了支持运行API <= 32的设备,Android在Androidx Appcompat:
现在有两种情况:
1. 在API <= 32中:
我的问题:如何在使用向后兼容且不需要使用Context的情况下,在Android API <=32中获取应用程序区域设置?
我已经找到了相反的this。
我尝试过存储Locale,然后在需要时获取它,但这种方法需要使用无效的Context。
为了支持运行API <= 32的设备,Android在Androidx Appcompat:
androidx.appcompat:appcompat:1.6.0-beta01
中添加了:AppCompatDelegate.setApplicationLocales(appLocale);
现在应用程序语言可以与系统语言不同。现在有两种情况:
1. 在API <= 32中:
Locale.getDefault()
将返回等于应用程序的系统语言环境。
2. 在API 33中:
Locale.getDefault()
将返回应用程序语言环境,而不是系统语言环境。要获取系统语言环境,可以使用LocaleManagerCompat.getSystemLocales(this).get(0)
。我的问题:如何在使用向后兼容且不需要使用Context的情况下,在Android API <=32中获取应用程序区域设置?
我已经找到了相反的this。
我尝试过存储Locale,然后在需要时获取它,但这种方法需要使用无效的Context。
AppCompatDelegate.getApplicationLocales()
返回一个列表,也许您只使用了一种语言环境。因此,AppCompatDelegate.getApplicationLocales().get(0)
是获取应用程序语言环境的方法。 - Mohd注意:此API应始终在Activity.onCreate()之后调用。
- Starwave