28

我正在为客户的公司使用 Django 开发库存管理应用程序,并希望使用冰淇淋三明治平板电脑作为最终用户设备。我使用一个工作正常的 USB 条形码阅读器。

我的问题是,一旦插入条形码阅读器,它就会被识别为真正的键盘,我无法再访问虚拟键盘了。这对我来说是个大问题,因为我只使用条形码阅读器来编码 EAN13 代码,并且需要旁边的软键盘......

有什么方法可以同时启用虚拟键盘和真实键盘?我真的需要这方面的帮助......

谢谢 !

4

7 回答 7

18

好吧,我找到了解决问题的方法!(现在不知道赏金该怎么办......)

当您输入文本区域时(例如:在导航器上),您只需触摸时钟左侧的键盘图标。在“使用物理键盘”旁边,您必须选择“否”。

我发现即使这样,条形码阅读器仍将处于活动状态(是的!)并且软键盘也会弹出!

于 2012-05-14T09:34:55.093 回答
15

是的,条形码扫描仪被检测为物理键盘。当键盘连接到设备时,默认情况下禁用软键盘。要启用它,我们需要通过以下方式关闭硬件键盘:

设置 > 语言和输入法 > 选择输入法

选项名称可能因设备而异。即使我们将其关闭,我们也可以将扫描仪与软键盘一起使用。

不,目前没有办法以编程方式实现这一点。我们能做的最多的就是检测扫描仪/键盘何时连接,并将用户重定向到输入法选择窗口,通过覆盖如下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();
  }
}
于 2014-06-18T14:07:42.803 回答
11

您可以使用 InputMethodManager 强制打开软件键盘:

InputMethodManager imm = (InputMethodManager)getContext().getSystemService(
                                              Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
于 2012-05-14T07:46:37.597 回答
5

试试这个强制打开软键盘:

((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);
于 2012-05-20T02:35:25.390 回答
2

我不是程序员,但这里发布的所有问题都相同。在网上搜索了很多之后,我通过 Google Play 商店找到了一个似乎对我们很有效的键盘(BT Scanner 和同时想要 SoftKeyboard)。它被 Klaus Weidner 称为 Hacker's Keyboard。

只需使用黑客键盘,转到设置-> 向下滚动到“语言和输入”--> 黑客键盘--> 转到--> 配置--> 向下滚动到“输入模式设置”--> 确保“始终显示软键盘”已选中。即使扫描仪是通过蓝牙连接的,软键盘也会保持打开状态。在断开和重新连接蓝牙扫描仪时也能正常工作。

于 2015-06-17T04:22:19.267 回答
1

由于图标不显示,因此不适用于普通键盘。您需要安装另一个键盘应用程序或键盘切换器应用程序(即使您没有安装任何其他键盘,它也只会显示图标)

于 2013-02-26T03:54:32.393 回答
0

在Languages & input > Keyboard, mouse, and track pad中启用使用屏幕键盘(物理键盘处于活动状态时将其保留在屏幕上)后,它对我有用。

于 2021-11-17T15:05:09.633 回答