2011-12-13 4 views
9

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

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

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

Спасибо.

ответ

4

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

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

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

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

1

Вы можете изменить локальный так:

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); 
+3

Является ли этот параметр локали из кода мобильных приложений? Если это так, я не думаю, что вы правильно прочитали мой вопрос - мне нужно переключить язык устройства из приложения автоматизации независимо от кода мобильных приложений. –

0

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

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