gpt4 book ai didi

android - 即使连接了硬件键盘也显示软键盘

转载 作者:IT老高 更新时间:2023-10-28 23:06:29 27 4
gpt4 key购买 nike

有什么方法可以显示连接了 USB 键盘的软件键盘(在我的情况下是 RFID 阅读器)?
我尝试使用 InputManager(使用这些或类似参数)强制显示它,但没有运气

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

重要通知 - 我知道状态/系统栏中有一个按钮可以显示它,但是用户(Kiosk 应用程序)看不到这个按钮。

最佳答案

即使有硬键盘,您也需要覆盖 InputMethodService 方法 onEvaluateInputViewShown() 以评估为 true。见 onEvaluateInputShown()InputMethodService 的软输入 View 部分.尝试创建您自己的自定义 InputMethodService 类来覆盖此方法。

编辑:source for onEvaluateInputShown()应该有帮助。解决方案应该像创建您自己的扩展 InputMethodService 的类并覆盖这个方法一样简单,该方法只有几行长。确保将您的自定义服务也添加到您的 list 中。

来源:

"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 updateInputViewShown() yourself whenever the returned value may have changed to have it re-evalauted and applied."

public boolean onEvaluateInputViewShown() {
Configuration config = getResources().getConfiguration();
return config.keyboard == Configuration.KEYBOARD_NOKEYS
|| config.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES;
}

Here是您可以检查的可能配置。 Configuration.KEYBOARD_NOKEYS 对应无硬件键盘。如果没有硬件键盘或隐藏了硬件键盘,此方法返回 true(应显示软键盘)。删除这两项检查并简单地返回 true 应该会使软件键盘可见,即使连接了硬件键盘。

尝试(未测试):

public boolean onEvaluateInputViewShown() {
return true;
}

由于这个返回值不会改变,你不需要自己调用updateInputViewShown()。如果您以不同方式修改此方法,请务必记住此详细信息。

关于android - 即使连接了硬件键盘也显示软键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com