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

问题描述 投票:0回答:2

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

`android.permission.CHANGE_CONFIGURATION`

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

adb grant mypackage android.permission.CHANGE_CONFIGURATION

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

android configuration settings locale
2个回答
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;
    }

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


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);
© www.soinside.com 2019 - 2024. All rights reserved.