2017-03-08 86 views
-1

我想使用蓝牙条形码扫描器读取条形码。 我不想使用蓝牙键盘仿真(HID)模式,因为在任何扫描之前,都难以指向文本框。从Android中的蓝牙条形码读取器读取数据

我看了这个developer.android.com/guide/topics/connectivity/bluetooth.html但我还没有找到可用的东西。 必须监听带有结束代码分隔符(CR,LF等)的写入事件。

+1

搞清楚如何要做到这一点是你的责任。我们不在这里为你做你的工作。 –

+0

我从来没有想过,它可能是你的责任:)这是我现在面临的问题,我认为可能是一个普遍的兴趣。就像这个网站上的所有帖子一样。如果你想对别人有意思,请在你自己的后院注意! –

+0

我完全不是故意的,我只是指出这是你发布这个问题的错误网站。本网站旨在帮助人们解决代码中的问题,而不是告诉人们如何去做。因此,如果您对一段代码没有特定的问题,那么您的网站就会出现问题,并且您的问题不会很快收到,也不会很快得到答复。 –

回答

2

如果您的蓝牙条形码扫描仪没有将HID模式更改为SSP模式的开关*,则无法与他连接。 (*硬件或软件开关)

Android本机连接HID蓝牙(人机接口设备),不要让他们去:)。

所以,我解决了我的问题阅读和重写键盘事件。

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    if (barCodeRadearIsOn && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || (event.getKeyCode() >= 7 && event.getKeyCode() <= 16))) { 
     if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
      if (event.getAction() == KeyEvent.ACTION_UP){ 
       Toast.makeText(context, barCode, Toast.LENGTH_LONG).show(); 

       ....... ....... 

       barCode = ""; 
      } 
     } else { 
      if (event.getAction() == KeyEvent.ACTION_UP){ 
       barCode = barCode + (char)event.getUnicodeChar(); 
      } 
     } 
     return true; 
    } else { 
     return super.dispatchKeyEvent(event); 
    } 
} 

注:

  • barCodeRadearIsOn - 用户有一个开关的开/关
  • 此代码 “截距” 仅输入和数字字符从0到9