我正在为客户的公司使用 Django 开发库存管理应用程序,并希望使用冰淇淋三明治平板电脑作为最终用户设备。我使用一个工作正常的 USB 条形码阅读器。
我的问题是,一旦插入条形码阅读器,它就会被识别为真正的键盘,我无法再访问虚拟键盘了。这对我来说是个大问题,因为我只使用条形码阅读器来编码 EAN13 代码,并且需要旁边的软键盘......
有什么方法可以同时启用虚拟键盘和真实键盘?我真的需要这方面的帮助......
谢谢 !
我正在为客户的公司使用 Django 开发库存管理应用程序,并希望使用冰淇淋三明治平板电脑作为最终用户设备。我使用一个工作正常的 USB 条形码阅读器。
我的问题是,一旦插入条形码阅读器,它就会被识别为真正的键盘,我无法再访问虚拟键盘了。这对我来说是个大问题,因为我只使用条形码阅读器来编码 EAN13 代码,并且需要旁边的软键盘......
有什么方法可以同时启用虚拟键盘和真实键盘?我真的需要这方面的帮助......
谢谢 !
好吧,我找到了解决问题的方法!(现在不知道赏金该怎么办......)
当您输入文本区域时(例如:在导航器上),您只需触摸时钟左侧的键盘图标。在“使用物理键盘”旁边,您必须选择“否”。
我发现即使这样,条形码阅读器仍将处于活动状态(是的!)并且软键盘也会弹出!
是的,条形码扫描仪被检测为物理键盘。当键盘连接到设备时,默认情况下禁用软键盘。要启用它,我们需要通过以下方式关闭硬件键盘:
设置 > 语言和输入法 > 选择输入法
选项名称可能因设备而异。即使我们将其关闭,我们也可以将扫描仪与软键盘一起使用。
不,目前没有办法以编程方式实现这一点。我们能做的最多的就是检测扫描仪/键盘何时连接,并将用户重定向到输入法选择窗口,通过覆盖如下onConfigurationChanged
方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
.showInputMethodPicker();
Toast.makeText(this, "Barcode Scanner detected. Please turn OFF Hardware/Physical keyboard to enable softkeyboard to function.", Toast.LENGTH_LONG).show();
}
}
您可以使用 InputMethodManager 强制打开软件键盘:
InputMethodManager imm = (InputMethodManager)getContext().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
试试这个强制打开软键盘:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
要关闭软键盘:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(_pay_box_helper.getWindowToken(), 0);
我不是程序员,但这里发布的所有问题都相同。在网上搜索了很多之后,我通过 Google Play 商店找到了一个似乎对我们很有效的键盘(BT Scanner 和同时想要 SoftKeyboard)。它被 Klaus Weidner 称为 Hacker's Keyboard。
只需使用黑客键盘,转到设置-> 向下滚动到“语言和输入”--> 黑客键盘--> 转到--> 配置--> 向下滚动到“输入模式设置”--> 确保“始终显示软键盘”已选中。即使扫描仪是通过蓝牙连接的,软键盘也会保持打开状态。在断开和重新连接蓝牙扫描仪时也能正常工作。
由于图标不显示,因此不适用于普通键盘。您需要安装另一个键盘应用程序或键盘切换器应用程序(即使您没有安装任何其他键盘,它也只会显示图标)
在Languages & input > Keyboard, mouse, and track pad中启用使用屏幕键盘(物理键盘处于活动状态时将其保留在屏幕上)后,它对我有用。