我要求有一个条码扫描器。我必须实现这一点,条形码扫描器读取的数据必须显示我的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;
}
提前致谢。请帮助我们在代码或任何教程中获得一些代码帮助。
答案 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);
我认为这可以帮助您解决问题,而无需使用任何插件或进行任何连接。