上一篇提到「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輸入中文,封裝輸入方法