2012-04-26 2 views
4

Я пытаюсь изменить язык всей системы Android Phone на моем приложении, потому что наша цель - настроить приложение «Настройки».Как изменить языковые настройки всей системы в 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?

Я обнаружил, что в исходном коде "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

попробовать этот

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"

+0

Спасибо за любезно помочь @imran хан! Но, похоже, это работает только в приложении. –

Смежные вопросы