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

我正在为我们的应用程序编写一些Androidtesting自动化,这些自动化已经被本地化为18种语言

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

有没有什么办法可以通过MonkeyRunner,Android Debug Bridge或其他方式来实现? 理想情况下,我想要一个在Android模拟器和物理设备上工作的方式。

谢谢。

Solutions Collecting From Web of "在Android设备上以编程方式切换语言"

最后找出你可以通过我刚刚安装在我的testing机器上的Androiddebugging桥来完成这个工作,并添加到windows PATHvariables中。

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

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

您将需要一个根植的设备为了这工作。

你可以像这样改变本地:

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

你可以写一个脚本,它发送广播到一个帮助程序,如adb发送广播 ,这个应用程序改变你的设备内的设备,如设备语言,你可以使用@iSun的代码。