如何从Phonegap中的CT10蓝牙条码扫描器读取数据?

时间:2014-08-21 11:38:39

标签: java android cordova bluetooth barcode-scanner

我要求有一个条码扫描器。我必须实现这一点,条形码扫描器读取的数据必须显示我的phonegap应用程序。我在项目中使用Bluetoothserial插件。但是当我想读取或读取条形码扫描器扫描的内容时,readUntil方法显示没有缓冲区。我使用了像

这样的功能
private String readUntil(String c) {
    LOG.d(TAG, "parameter = " + c);
    String data = "";
    int index = buffer.indexOf(c, 0);
    LOG.d(TAG, "index position = " + String.valueOf(buffer));
    if (index > -1) {
        data = buffer.substring(0, index + c.length());
        buffer.delete(0, index + c.length());
    }
    LOG.d(TAG, "action = " + data);
    return data;
}

提前致谢。请帮助我们在代码或任何教程中获得一些代码帮助。

1 个答案:

答案 0 :(得分:4)

这可以用一个简单的技巧。您不需要通过应用程序建立连接。您只需手动连接手机上的蓝牙设备即可。然后在您的应用程序中取一个文本框,并将此文本框的高度设置为1,并将其放在左上角,z索引为负值,以便最终用户无法看到此文本框。现在编写一个递归程序,始终将焦点放在文本框上。因为如果扫描仪连接到您的手机,那么如果条形码扫描器读取任何内容,那么它将在您的文本框中打印,并且如果在文本框上写入任何内容,则递归或超时功能可以正常工作。我给你下面给出的setTimeout函数代码:

function focusOnScanner()
{
    if($("#scannerTxt").length == 1)
    {
        document.getElementById('scannerTxt').focus();
        var scannedData = $("#scannerTxt").val();
        if(scannedData.length > 0)
        {
            $("#scannerTxt").val('');
            //Here do your work
        }
     }
     setTimeout(focusOnScanner, 5000);
}
setTimeout(focusOnScanner, 5000);

我认为这可以帮助您解决问题,而无需使用任何插件或进行任何连接。