在设备中设置系统区域设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在设备中设置系统区域设置相关的知识,希望对你有一定的参考价值。

有谁知道可以通过编程方式为设备设置系统语言?我知道我们无法使用的问题

`android.permission.CHANGE_CONFIGURATION`

(google在android 5.0+中更改了它)我用反射方法测试了它。只有当我们用adb授予许可时它才能工作(它的方法不正确)

adb grant mypackage android.permission.CHANGE_CONFIGURATION

我的应用程序有管理员权限,我希望可能有另一种方式当我的应用程序是管理员应用程序,我可以更改设备区域设置programmaticaly?

答案

这种方法完成了大部分工作。相应地编辑

   private static boolean updateResources(Context context, String language) {
        Locale locale = new Locale(language);
        Locale.setDefault(locale);

        Resources resources = context.getResources();

        Configuration configuration = resources.getConfiguration();
        configuration.locale = locale;

        resources.updateConfiguration(configuration, resources.getDisplayMetrics());

        return true;
    }

它从您传入的语言字符串中选择一个新的语言环境,然后更新应用程序的资源文件。

另一答案

此代码模仿通过设置应用程序手动执行此操作的效果:

String locale = "en-US";
Locale loc = null;

String[] langCountry = locale.split("-");
if (langCountry.length == 2) {
    loc = new Locale(langCountry[0], langCountry[1]);
} else {
    loc = new Locale(locale);
}
LocalePicker.updateLocale(loc);

以上是关于在设备中设置系统区域设置的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android的BottomNavigationView中设置填充项

如何在android的片段中设置应用程序上下文?

在android的片段中设置列表视图适配器

在android活动中设置片段的形状和透明度

在 vb.net 中设置系统记录级别

在片段中设置文本颜色