上一篇提到“adb shell input textyoyo“ 能够经过adb 输入英文的文本,因为不支持unicode编码,因此没法输入中文,github上有个国外的大神写了个ADBKeyBoard输入法的apk,完美支持unicode编码,也能输入中文和其它字符了python
1.ADBKeyBoard在github的源码地址ADBKeyBoard github 地址,有兴趣的能够去看看,这里我翻译成中文文档了android
2.ADBKeyBoard是一个虚拟键盘,它接收来自系统broadcast的命令,能够使用ADB输入文本内容,如下是adb 的input事件发生文本。
可是,不能使用此命令发送Unicode字符git
usage: input [text|keyevent] input text input keyevent
以下这种是不支持的github
e.g.
adb shell input text '你好嗎' is not going to work.
3.ADBKeyBoard就是为解决这个问题而专门开发的一个小工具,主要用于自动化测试方面。shell
1.手机先安装ADBKeyBoard.apk,(下载地址:QQ群512200893群文件可下载),使用adb指令安装apk编辑器
adb install [本地电脑apk路径]工具
2.打开设置-语言输入法-默认输入法,先关掉“硬件-物理键盘"这个选项(模拟器上通常默认是开启的)测试
3.将ADBKeyBoard输入法设置为默认输入法,这里能够直接用adb命令设置编码
adb shell ime set com.android.adbkeyboard/.AdbIMEspa
也能够手工去设置ADBKeyBoard输入法为默认输入法
1.发送中文文本调用系统的broadcast,用到以下指令
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '上海-悠悠'
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '上海-悠悠'
adb shell am broadcast -a ADB_INPUT_CODE --ei code 67
adb shell am broadcast -a ADB_EDITOR_CODE --ei code 2
adb shell am broadcast -a ADB_INPUT_CHARS --eia chars '128568,32,67,97,116'
adb shell ime set com.android.adbkeyboard/.AdbIME
adb shell ime set com.nuance.swype.dtc/com.nuance.swype.input.IME
adb shell ime list -a
1.用python实现adb输入中文,封装输入方法