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

时间:2017-01-03 14:39:26

标签: android configuration settings locale

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

`android.permission.CHANGE_CONFIGURATION`

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

adb grant mypackage android.permission.CHANGE_CONFIGURATION

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

2 个答案:

答案 0 :(得分:0)

此方法完成大部分工作。相应地编辑

   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;
    }

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

答案 1 :(得分:0)

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

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);
相关问题