在Android设备上以编程方式切换语言

时间:2011-12-13 20:09:02

标签: android monkeyrunner

我正在为我们的应用程序编写一些Android测试自动化,这些应用程序已本地化为18种语言。

我需要能够以编程方式切换设备上的语言 - 我不是要切换应用程序的语言 - 我的意思是在Android设置中切换实际的设备语言,这样我们的应用程序也会切换。 / p>

有什么方法可以通过MonkeyRunner,Android Debug Bridge或其他方式实现这一目标吗?理想情况下,我想要一种适用于Android模拟器和物理设备的方法。

感谢。

3 个答案:

答案 0 :(得分:4)

最后想通过我刚刚在我的测试机器上安装的Android Debug Bridge并添加到windows PATH变量中来做到这一点。

例如,将设备语言切换为德语的命令为:

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

您需要一个有根设备才能使其正常工作。

答案 1 :(得分: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);

答案 2 :(得分:0)

您可以编写一个脚本,将广播发送到帮助应用程序,如adb send broadcast,此应用程序会更改您在设备内的配置,如设备语言,您可以使用@iSun的代码。