android开发分享Android获取当前的语言环境,而不是默认的

如何在Android中获取用户当前的语言环境?

我可以得到默认的,但这可能不是当前的一个正确的?

基本上我想要从当前语言环境的两个字母的语言代码。 不是默认的。 没有Locale.current()

    默认的Locale是在运行时为系统属性设置的应用程序进程静态构build的,所以它将代表应用程序启动时在该设备上select的Locale 。 通常情况下,这很好,但这确实意味着如果用户在应用程序运行后更改了其Locale设置, getDefaultLocale()的值可能不会立即更新。

    如果您在应用程序中由于某种原因需要捕获这样的事件,您可以尝试从资源Configuration对象中获取可用的Locale ,即

     Locale current = getResources().getConfiguration().locale; 

    如果您的应用程序需要更改设置,您可能会发现此值更新更快。

    Android N(Api级别24)更新(无警告):

      Locale getCurrentLocale(Context context){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ return context.getResources().getConfiguration().getLocales().get(0); } else{ //noinspection deprecation return context.getResources().getConfiguration().locale; } } 

    getDefault的文档:

    返回用户的首选语言环境。 这可能已被setDefault(Locale)的这个过程覆盖。

    另外从Locale文档:

    默认语言环境适用于涉及向用户呈现数据的任务。

    似乎你应该只是使用它。

      以上就是android开发分享Android获取当前的语言环境,而不是默认的相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/518413.html

      (0)
      上一篇 2020年12月6日
      下一篇 2020年12月6日

      精彩推荐