在Android设备上编程实现语言切换

9
我正在为我们的应用编写一些Android测试自动化,这些应用已经被本地化成了18种语言。
我需要能够通过程序在设备上切换语言 - 我不是指仅切换应用程序的语言 - 我的意思是切换实际设备语言在Android设置中,这样我们的应用程序也会跟着切换。
是否有任何方法可以通过MonkeyRunner,Android Debug Bridge或其他方式实现这一点?理想情况下,我希望找到一种适用于Android模拟器和物理设备的方法。
谢谢。
3个回答

4

最终发现可以通过Android Debug Bridge实现此操作,我刚刚在我的测试机上安装了它并将其添加到了Windows的PATH变量中。

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

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

你需要一个已经获取Root权限的设备才能使用这个功能。

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
这段话的意思是:这是从移动应用程序代码中设置语言环境吗?如果是,我认为你没有正确理解我的问题——我需要从自动化应用程序中切换设备语言,而不受我的移动应用程序代码的影响。 - Jimmy Collins

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接