-
www说
如果您想获得设备的选定语言,这可能对您有所帮助:Locale.getDefault().getDisplayLanguage();
-
忽然笑
我在Android 4.1.2设备上检查了Locale方法,结果如下:Locale.getDefault().getLanguage() ---> en Locale.getDefault().getISO3Language() ---> eng Locale.getDefault().getCountry() ---> US Locale.getDefault().getISO3Country() ---> USA Locale.getDefault().getDisplayCountry() ---> United States Locale.getDefault().getDisplayName() ---> English (United States) Locale.getDefault().toString() ---> en_USLocale.getDefault().getDisplayLanguage()---> English
-
白猪掌柜的
对我有用的是:Resources.getSystem().getConfiguration().locale;Resource.getSystem()返回一个全局共享的Resources对象,该对象仅提供对系统资源的访问(没有应用程序资源),并且没有为当前屏幕配置(不能使用维度单位,不会根据方向更改等)。由于getConfiguration.locale现已弃用,因此在Android Nougat中获取主要语言环境的首选方法是:Resources.getSystem().getConfiguration().getLocales().get(0);为了保证与以前的Android版本的兼容性,可能的解决方案是一个简单的检查:Locale locale;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { locale = Resources.getSystem().getConfiguration().getLocales().get(0);} else { //noinspection deprecation locale = Resources.getSystem().getConfiguration().locale;}更新从支持库开始,26.1.0您不需要检查Android版本,因为它提供了向后兼容的方便方法getLocales()。只需致电:ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration());