Android获取系统语言(兼容7.0)

从 Android 7.0 开始,系统语言支持多个,可手动排序,系统根据 App 本身支持的语言和手机出厂设置的语言等因素来调整 App 本身的默认语言。使用 getResources().getConfiguration().getLocales() 返回的是一个 LocaleList 对象,它包含 >=1 个 Locale,内容项可由用户增删,顺序可由用户调整。但是,此接口返回的语言顺序和用户定义的顺序不一定一致!

获取系统真实首选语言:

Locale locale;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    locale = LocaleList.getDefault().get(0);
} else {
    locale = Locale.getDefault();
}

String language = locale.getLanguage() + "-" + locale.getCountry();
Log.i("yezhou", "Language: " + getLanguage() + ", LocaleLanguage: " + getLocaleLanguage() + ", Country: " + getCountry());
//Language: zh, LocaleLanguage: zh-CN, Country: CN

public static String getLanguage() {
    Locale locale;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        locale = LocaleList.getDefault().get(0);
    } else {
        locale = Locale.getDefault();
    }
    return locale.getLanguage();
}

public static String getLocaleLanguage() {
    Locale locale;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        locale = LocaleList.getDefault().get(0);
    } else {
        locale = Locale.getDefault();
    }
    return locale.getLanguage() + "-" + locale.getCountry();
}

public static String getCountry() {
    Locale locale;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        locale = LocaleList.getDefault().get(0);
    } else {
        locale = Locale.getDefault();
    }
    return locale.getCountry();
}

参考资料:https://developer.android.com/reference/java/util/Locale.html

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/26/android-get-system-language-compatible-with-7/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android获取系统语言(兼容7.0)
从 Android 7.0 开始,系统语言支持多个,可手动排序,系统根据 App 本身支持的语言和手机出厂设置的语言等因素来调整 App 本身的默认语言。使用 getResources……
<<上一篇
下一篇>>
文章目录
关闭
目 录