gpt4 book ai didi

android - Locale.getDefault() 在某些 Android 设备上已过时

转载 作者:行者123 更新时间:2023-11-29 16:53:50 25 4
gpt4 key购买 nike

我的应用程序中有一个广播接收器,它会在设备的区域设置更改时被调用。我的应用程序在一些设备上存在错误,特别是 Nexus 5x 和 Galaxy S8+(很可能还有其他设备),其中 Locale.getDefault() 返回陈旧/先前的值。新语言的本地化字符串正确显示,但在应用程序内部,我们的语言环境已过时。有什么想法吗?

例如:

1) 设备是英文的 -> App 区域设置告诉我们我们是英文的。

2) 将应用置于后台并将设备语言更改为德语

3) App 收到语言环境更改广播事件,Locale.getDefault() 返回英语而不是德语

我看到这里为许多设备返回德语,但不是所有设备。

最佳答案

another answer 中所引用, 默认语言环境是静态定义的 at the time the application is created .尝试直接从您的资源中检索语言环境。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
return getResources().getConfiguration().getLocales().get(0);
} else{
return getResources().getConfiguration().locale;
}

关于android - Locale.getDefault() 在某些 Android 设备上已过时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com