我想通过亚行改变语言。 我试试:
adb shell setprop persist.sys.language fr;setprop persist.sys.country CA;stop;sleep 5;start
但我收到错误:
setprop: command not found
stop: missing job name
Try `stop --help' for more information.
start: missing job name
Try `start --help' for more information.
有什么不对? 我想在物理设备上执行此操作
答案 0 :(得分:25)
您的错误与adb
无关。您只是缺乏对本地shell如何处理命令的理解。您正在做的是在本地(在您的PC上)运行这些命令:
adb shell setprop persist.sys.language fr
setprop persist.sys.country CA
stop
sleep 5
start
,您看到的错误消息来自本地shell(即系统上没有setprop
可执行文件,start
和stop
命令具有非可选参数。
正确的命令是
adb shell "setprop persist.sys.language fr; setprop persist.sys.country CA; setprop ctl.restart zygote"
或更新的Android版本:
adb shell "setprop persist.sys.locale fr-CA; setprop ctl.restart zygote"
答案 1 :(得分:14)
您可以更改区域设置/语言以用于测试目的而无需生根设备,也可以更新(4.2+)设备。您必须创建an application that changes the device locale。或者,您可以使用帮助应用程序,例如ADB Change Language。
接下来,在4.2以上的设备上,您必须通过adb adb shell pm grant <package_name> android.permission.CHANGE_CONFIGURATION
使用授予应用CHANGE_CONFIGURATION权限。
最后,您可以使用adb命令(启动活动)来切换区域设置。
答案 2 :(得分:2)
试试这个
adb shell "su -c 'setprop persist.sys.language fr; setprop persist.sys.country CA; stop; sleep 5; start'
您需要一个有根设备。
答案 3 :(得分:2)
这就是所有地方,简单地说就是
setprop仅适用于AVD或有根的物理设备
另一种方法是使用Launcher中的设置。
有效的设备或AVD:
<android-sdk path>/platform-tools/adb shell
root@generic:/ # getprop persist.sys.language
getprop persist.sys.language
en
root@generic:/ # setprop persist.sys.language fr
setprop persist.sys.language fr
root@generic:/ # setprop persist.sys.country CA
setprop persist.sys.country CA
root@generic:/ # stop
stop
root@generic:/ # start
start
root@generic:/ # sleep 5
sleep 5
root@generic:/ # getprop |grep lang
getprop |grep lang
[persist.sys.language]: [fr]
root@generic:/ # getprop |grep country
getprop |grep country
[persist.sys.country]: [CA]
root@generic:/ #
答案 4 :(得分:1)
执行以下步骤:
通过运行以下命令来启动模拟器:
adb root
通过adb
运行以下shell命令:
adb -e shell "su root; setprop persist.sys.locale pt-PT; stop; sleep 2; start”
然后,退出重新启动模拟器的shell。
屏幕截图所需的语言区域:
de_DE
en_EN
fr_FR
ko_KO
pt_PT
es_ES
ja_JA
答案 5 :(得分:0)
对于Android M或更新版本,您需要使用:
setprop ro.product.locale xx-XX
setprop persist.sys.locale xx-XX
xx是语言,XX是国家
答案 6 :(得分:0)
无需生根的解决方案。 您可以在下面的函数中使用类似的功能。 该功能进入设置并执行UI来更改语言环境设置。
棘手的部分是当您使用另一种语言时,要使用正确的语言。您可能会认为该语言在列表中始终保持相同的索引,但不幸的是并非如此。因此,您必须拥有这样的解决方案。
缺点:您需要对它进行一些微调才能处理不同的电话,设置的顺序可能不同。
答案 7 :(得分:0)
在模拟器上: 手动更改语言后,它停止工作,必须在AVD管理器中擦除Emulator的数据才能使其再次工作。
使用的脚本:
adb shell "su 0 setprop persist.sys.locale ja";adb shell "su 0 setprop ctl.restart zygote"
如果此命令下面的脚本中的某些命令取决于准备就绪的设备,则可以最后添加; sleep 20 。
答案 8 :(得分:0)
解决方案很少。它对我有用。
adb shell开始-android.settings.LOCALE_SETTINGS (您可以看到语言菜单,然后按appium选择语言)
在Google商店中下载adbchange语言
adb shell pm授予net.sanapeli.adbchangelanguage android.permission.CHANGE_CONFIGURATION
adb shell开始-n net.sanapeli.adbchangelanguage / .AdbChangeLanguage -e语言zh -e国家TW https://gist.github.com/douglasselph/b9998e69998759c6cceec1df1aa96ac5
使用appium然后设置所需的功能(语言和语言环境) http://appium.io/docs/en/writing-running-appium/caps/
答案 9 :(得分:0)
API 28+的解决方案是
adb shell am broadcast -a com.android.intent.action.SET_LOCALE --es com.android.intent.extra.LOCALE "en_US" com.android.customlocale2
答案 10 :(得分:0)
使用 adb shell 更改模拟器中的语言环境。
选择您要测试的区域设置并确定其 BCP-47 语言标签,例如,加拿大法语将是 fr-CA
。
启动模拟器。
从主机上的命令行 shell,运行以下命令:
adb shell
或者如果您连接了设备,请通过添加 -e
选项指定您需要模拟器:
adb -e shell
在 adb shell 提示符 (#
) 下,运行以下命令:
setprop persist.sys.locale [BCP-47 language tag];stop;sleep 5;start
用步骤 1 中的适当代码替换括号中的部分。
例如,用加拿大法语进行测试:
setprop persist.sys.locale fr-CA;stop;sleep 5;start
这会导致模拟器重新启动。 (看起来像是完全重启,但事实并非如此。)再次出现主屏幕后,重新启动您的应用,应用就会以新的语言环境启动。
答案 11 :(得分:0)
要将语言设置为美国英语,请在终端中运行以下命令:
adb shell "setprop persist.sys.locale en-US; setprop ctl.restart zygote"
要更改为其他语言,请参阅以下语言列表: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/localization#locale-codes
答案 12 :(得分:-5)
您无法使用设备上的adb执行此操作。您在设备外部的adb,我的意思是在与USB连接的计算机上,可以在更改语言之前通过权限更改它。
直接在您的设备上,您需要一个有根设备。