Переключите язык программно на устройстве Android - PullRequest
9 голосов
/ 14 декабря 2011

Я пишу некоторые автоматизированные тесты Android для наших приложений, которые локализованы на 18 языков.

Мне нужна возможность программного переключения языка на устройстве - я не хочу переключать языкпросто приложения - я имею в виду переключение реального языка устройства в настройках Android, таким образом переключается и наше приложение.

Есть ли способ, которым я могу сделать это через MonkeyRunner, Android Debug Bridge или иным способом?В идеале я хотел бы, чтобы способ работал как на эмуляторе Android, так и на физическом устройстве.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 05 января 2012

Наконец-то понял, что вы можете сделать это с помощью Android Debug Bridge , который я только что установил на своем тестовом компьютере и добавил в переменную PATH Windows.

Например, командачтобы переключить язык устройства на немецкий, было бы:

adb shell "su -c 'setprop persist.sys.language de; setprop persist.sys.country de; stop; sleep 5; start'

Вам понадобится рутованное устройство, чтобы это работало.

1 голос
/ 14 декабря 2011

Вы можете изменить местный, как это:

   Resources res = context.getResources();
    // Change locale settings in the app.
    DisplayMetrics dm = res.getDisplayMetrics();
    android.content.res.Configuration conf = res.getConfiguration();
    conf.locale = new Locale(language_code.toLowerCase());
    res.updateConfiguration(conf, dm);
0 голосов
/ 20 января 2014

Вы можете написать скрипт, который отправляет широковещательную рассылку в приложение-помощник, например adb send broadcast , и это приложение меняет вашу конфигурацию внутри устройства, например, язык устройства, где вы можете использовать этот код @ iSun.

...