我正在为一家客户的公司开发Django的库存管理应用程序,并希望使用冰淇淋三明治平板电脑作为最终用户设备.我使用USB条形码阅读器,工作正常.
我的问题是,一旦条形码阅读器插入,它就被认为是真正的键盘,我再也无法访问虚拟键盘了.这对我来说是一个大问题,因为我只使用条形码阅读器对EAN13代码进行编码,并且需要旁边的软键盘......
有没有办法同时启用虚拟键盘和真实键盘?我真的需要帮助....
谢谢 !
Lap*_*anc 18
好吧,我找到了解决问题的方法!(现在不知道关于赏金的内容......)
当您输入文本区域(例如:在导航器上)时,您只需触摸时钟左侧的键盘图标即可.在"使用物理键盘"旁边,您必须选择"否".
我发现即使这样,条形码阅读器仍然是活动的(yessss!),软键盘也会弹出!
des*_*mad 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();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 11
您可以使用InputMethodManager强制打开软件键盘:
InputMethodManager imm = (InputMethodManager)getContext().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
Run Code Online (Sandbox Code Playgroud)
试试这个强制打开软键盘:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
Run Code Online (Sandbox Code Playgroud)
要关闭软键盘:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(_pay_box_helper.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29291 次 |
| 最近记录: |