我的应用程序需要同时激活两个输入源:条形码扫描仪和软键盘。当我配对蓝牙扫描仪时,它被视为物理键盘。因此,连接此设备时,软键盘未显示(软键盘已停用)。
是否可以同时激活物理键盘和软键盘? 如果没有,解决问题的最佳方法是什么?我是否必须实现一个自定义视图来下载按键事件?市场上是否有任何键盘应用程序可以执行此操作?
如何以编程方式打开和关闭物理键盘?这是切换按钮“使用物理键盘”设置(我在此处找到了此设置的屏幕截图:
答案 0 :(得分:1)
无法同时激活物理键盘和软键盘。它由InputMethodService函数onEvaluateInputViewShown
强制执行。您可以查看文档here。
/**
* Override this to control when the soft input area should be shown to
* the user. The default implementation only shows the input view when
* there is no hard keyboard or the keyboard is hidden. If you change what
* this returns, you will need to call {@link #updateInputViewShown()}
* yourself whenever the returned value may have changed to have it
* re-evaluated and applied.
*/
public boolean onEvaluateInputViewShown() {
因此,除非您实现自己的IME,其中您可以覆盖onEvaluateInputViewShown,否则无法同时激活Physical和softkeyboard。
关于你的上一个问题,我不确定,但我认为没有办法以编程方式隐藏hardKeyboard。虽然它没有解决方案,但您应该检查this question