我发现使用android.text.format.DateUtils
返回“昨天”或“2 小时前”等值的相关 API 非常好 - 但我的应用程序并不支持 Android 所支持的每种语言。因此,我默认为英语,但对于我不支持的每种语言,相关字符串会显示在设备的设置中。
例如,像:
Last attempt: hace 11 minutos.
对于我不支持的任何语言,我希望将 API 调用默认设置为英语。但是,我没有看到任何地方可以设置 API 调用的区域设置 - 我希望我只是在某个地方错过了它。
有没有办法只为 API 调用设置区域设置,而忽略设备设置?
这对我来说适用于 Android 7
void forceLocale(Locale locale) {
Configuration conf = getBaseContext().getResources().getConfiguration();
updateConfiguration(conf, locale);
getBaseContext().getResources().updateConfiguration(conf, getResources().getDisplayMetrics());
Configuration systemConf = Resources.getSystem().getConfiguration();
updateConfiguration(systemConf, locale);
Resources.getSystem().updateConfiguration(conf, getResources().getDisplayMetrics());
Locale.setDefault(locale);
}
void updateConfiguration(Configuration conf, Locale locale) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
conf.setLocale(locale);
}else {
//noinspection deprecation
conf.locale = locale;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)