adb 无法输入中文的解决方法
adb 可以输入英文的文本,由于不支持unicode编码,所以无法输入中文,github上有个国外的大神写了个ADBKeyBoard输入法的apk,完美支持unicode编码,也能输入中文和其它字符及表情。
另外,我遇到版本1.0.31的adb输入中文到手机上后变成乱码,我换成1.0.36的版本就没事。
ADBKeyBoard 介绍
1、ADBKeyBoard在github的源码地址ADBKeyBoard github 地址,有兴趣的可以去看看,这里我翻译成中文文档了
2、ADBKeyBoard是一个虚拟键盘,它接收来自系统broadcast的命令,可以使用ADB输入文本内容,以下是adb 的input事件发生文本。但是,不能使用此命令发送Unicode字符
2、ADBKeyBoard是一个虚拟键盘,它接收来自系统broadcast的命令,可以使用ADB输入文本内容,以下是adb 的input事件发生文本。但是,不能使用此命令发送Unicode字符
usage: input [text|keyevent]
input text
input keyevent
如下这种是不支持的
adb shell input text '你好吗'
安装方法
1、手机先安装ADBKeyBoard.apk,使用adb指令安装apk,或者把apk放到手机里打开安装;
adb install [本地电脑apk路径]
2、打开设置-语言输入法-默认输入法,先关掉“硬件-物理键盘"这个选项(模拟器上一般默认是开启的)
3、将ADBKeyBoard输入法设置为默认输入法,这里可以直接用adb命令设置
adb shell ime set com.android.adbkeyboard/.AdbIME
也可以手工去设置ADBKeyBoard输入法为默认输入法
使用方法
发送中文文本调用系统的broadcast,用到如下指令
adb shell am broadcast -a ADB_INPUT_TEXT --es msg '深圳技术'
发送 keyevent 事件 (67 = KEYCODE_DEL)
adb shell am broadcast -a ADB_INPUT_CODE --ei code 67
发送编辑器动作 (2 = IME_ACTION_GO)
adb shell am broadcast -a ADB_EDITOR_CODE --ei code 2
发送Unicode字符,To send ? Cat
adb shell am broadcast -a ADB_INPUT_CHARS --eia chars '128568,32,67,97,116'
adb设置输入法相关指令
通过adb切换到ADBKeyBoard输入法 :
adb shell ime set com.android.adbkeyboard/.AdbIME
切换回原虚拟键盘(如切到swype输入法)
adb shell ime set com.nuance.swype.dtc/com.nuance.swype.input.IME
检查你的手机可用的虚拟键盘:
adb shell ime list -a