9

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

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

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

谢谢。

4

3 回答 3

4

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

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

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

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

于 2012-01-05T18:27:05.693 回答
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);
于 2011-12-13T20:24:14.373 回答
0

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

于 2014-01-20T09:08:54.363 回答