在Android中通过蓝牙接收数据

时间:2013-12-04 10:14:47

标签: java android sockets bluetooth

我必须实现一个应用程序,通过蓝牙从 1D激光条码扫描器here描述页面接收数据。

如果您选择EditTextEditText具有焦点,当您扫描条形码时,它会接收条形码内容并“神奇地”填充,此扫描仪可以正常工作有这个内容。

问题是我希望不关注EditText,我希望用户扫描条形码,应用程序通过委托方法或套接字接收数据,我解析数据和自动将它放在正确的EditText中(每个条形码都有一个校验位,允许我识别它是什么)。

扫描仪通过蓝牙自动连接,所以我只需要了解如何继续监听套接字并解析收到的数据。

想法?

2 个答案:

答案 0 :(得分:4)

没有魔法参与:)。该扫描仪正在模拟蓝牙键盘(HID接口)。谷歌删除了从Android 4.2开始连接L2CAP套接字的功能,因此您可能无法获得与设备的套接字连接。您可以做的是捕获键盘输入与EditText字段相同。您需要将输入焦点放到主窗口并在Java代码中覆盖此函数:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent msg)
    {
    }

然后,您将能够从设备接收一系列字符,并构建/解析生成的字符串。

答案 1 :(得分:-3)

用户zxing库获得优秀的条形码阅读

https://code.google.com/p/zxing/source/browse/trunk#trunk/core/src/com/google/zxing

Voteup如果它对你有帮助