如何在没有Intent的情况下改变android中整个系统的语言设置?

时间:2012-04-26 11:16:23

标签: android

我正在尝试在我的应用上更改整个Android手机系统的语言,因为我们的目标是自定义设置应用。

我试过这个,但没有用:

Configuration conf = Resources.getSystem().getConfiguration();

conf.locale = toSet;  //toSet is a Locale which I want to set to the system

conf.setToDefaults();

另一个尝试也不起作用:

Locale.setDefault(toSet)

有一些方法可以改变应用程序的语言,但不能改变系统。

我有什么方法可以达到目标吗? 获得root权限对我有用吗? 或者有什么方法可以修改Intent-Activity的UI界面吗?

我发现,在源代码中,"platform/packages/apps/Settings/src/com/android/settings/LocalePicker.java", "com.android.internal.app.LocalePicker" might help, and in the "platform/frameworks/base/core/java/com/android/internal/app",有一个名为“updateLocale”的函数,我想这可能会有所帮助,但是诸如“IActivityManager”之类的类会导致Eclipse中的编译错误。

有没有人有任何想法?谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个

String languageToLoad = "zh";  
Locale locale = new Locale(languageToLoad);  
Locale.setDefault(locale);  
Configuration config = new Configuration();  
config.locale = locale;  
getBaseContext().getResources().updateConfiguration(config, null);

AndroidManifest:

添加android:configChanges="locale"