最近在开发一个安卓手机投屏,在封装输入文本的时候,我们知道shell input text默认是不支持中文的,我们需要在目标手机安装ADBKeyBoard,问题是如何切换到这个输入法,如果我们的手机采用了第三方是输入发,比如讯飞,QQ拼音,其实是支持中文的输入的,这就造成了冲突,我们必须在切换到ADBKeyBoard后,输入完,再切换到默认的输入法,我们可以调用adb shell settings put secure default_input_method来完成默认输入的设置,下面把开发中用到的输入法相关的知识做个记录总结分享。
ADBKeyBoard
官网:https://github.com/senzhk/ADBKeyBoard
QQ输入法
http://qq.pinyin.cn/index_mobile.php
切换到ADBKeyBoard
adb shell ime set com.android.adbkeyboard/.AdbIME
手机输入法查看
1.获取当前设备有效的输入法列表
adb shell ime list -s
注意:
-s并不是已安装的所有输入法,而是安装并已勾选的输入法。
启用方式:
系统设置>>通用>>语言和输入法>>勾选输入法
2.检查可用的全部虚拟键盘:
adb shell ime list -a
3.获取当前设备有效输入法的详细信息
adb shell ime list
4.查看当前正在使用的输入法
当我们封装切换时,必须先知道这个输入法的默认名称,以下时获取方式:
adb shell settings get secure default_input_method
输出:
这个是ADBKeyBoard
com.android.adbkeyboard/.AdbIME
这个是QQ拼音,
com.tencent.qqpinyin/.QQPYInputMethodService
切换输入法(设置默认输入法)
1.普通切换
这是切换到QQ拼音
adb shell ime set com.tencent.qqpinyin/.QQPYInputMethodService
这是切换到ADBKeyBoard,其他的先执行adb来获取
adb shell ime set com.tencent.qqpinyin/.QQPYInputMethodService
2.切换输入法并且设为设置默认输入法(推荐使用这个命令)
这是把qq拼音输入法切换启用并设为默认
adb shell settings put secure default_input_method com.tencent.qqpinyin/.QQPYInputMethodService
这是把ADBKeyBoard输入法切换启用并设为默认
adb shell settings put secure default_input_method ime set com.android.adbkeyboard/.AdbIME
这样的话,我们在封装shell input text时就可以默认支持中文了。