有谁知道可以通过编程方式为设备设置系统语言?我知道我们无法使用的问题
`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);