我想用java设计一个条形码扫描器,将扫描的数字在数据库中查找详细信息,请问如何实现?解决有+

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想用java设计一个条形码扫描器,将扫描的数字在数据库中查找详细信息,请问如何实现?解决有+相关的知识,希望对你有一定的参考价值。

我以前写过超市扫码的,首先得有一个扫码枪,页面上让光标在文本框内,按一下扫码枪就会自动将货物的条形码显示在你的文本框中了,扫码枪将条形码显示在文本框中默认带一个回车,你就用javascript触发回车事件,写一个方法,从后台数据库中根据条形码查到具体的详细信息显示到页面上就行了,用ajax提交追问

必须要条码枪吗?直接在电脑上用摄像头把二维码扫描软件的结果返回给数据库可以吗?

追答

你是打算自己写个条形码扫描软件来代替条码枪?还是用某个扫描软件

追问

嗯,打算用zxing来写一个

追答

不好意思,这个还真没用过

追问

哦~好吧~谢谢

参考技术A 首先你得有一个条码枪,然后下载一个开源zxing的二维码扫描软件,有pc和移动端的,然后你在拿你扫描的信息去你的库中查找,其实挺简单的,最主要就是那个扫描的步骤了。追问

主要是这个扫描过程如何能够保存返回的值能够让数据库查找?

追答

让服务端做一个接口,然后当设备扫描完把数据提交到服务端。

参考技术B 你得知道你硬件的端口才行,用socket加载你的条形码扫描器,然后取得返回值在去数据库里匹配。

拦截条码扫描事件

【中文标题】拦截条码扫描事件【英文标题】:Intercept barcode scanning event 【发布时间】:2017-08-01 10:54:47 【问题描述】:

我正在开发一个应用程序,该应用程序将安装在带有集成条形码扫描仪的移动设备中。 在我的页面中有不同类型的小部件,包括一个不可见的条目,我想用它来临时存储扫描的条形码值。 问题是用户可以点击页面中的所有小部件并与之交互,并且在未知的时刻,他可以扫描条形码。 我想在这个不可见的条目中强制焦点或截取输入的文本(因为条形码扫描就像键盘输入一样)。我怎么能这样做? 我正在使用带有 MVVM Prism 框架的 Xamarin.Forms 进行开发。

注意= 条码扫描不是用摄像头。

【问题讨论】:

以下答案建议使用 Xamarin SDK 是最好的,但另一种方法是使用意图。您描述的楔形功能(将条形码数据作为击键发送)是一种输出机制,包括答案中提到的 Zebra TC51 在内的一些制造商也允许与条形码数据一起发送意图 - 然后您可以在 Xamarin 应用程序中拦截意图并相应地填充 UI 字段。 嗨 Darryn,你能解释一下如何拦截扫描事件和数据吗?你有例子吗? 为了全面披露,我为 Zebra 工作,但考虑到这一点,我在我的个人 github 中有一个示例应用程序来演示如何拦截意图:github.com/darryncampbell/DataWedge-API-Exerciser 然后遵循 repo 自述文件中的设备配置部分示例应用程序将收到它,例如此行显示通过广播意图发送的扫描:github.com/darryncampbell/DataWedge-API-Exerciser/blob/master/… 【参考方案1】:

使用“键盘模拟”从扫描仪读取条形码不是一个好主意。我不知道您在使用什么(通过蓝牙连接的外部条形码阅读器,集成的条形码阅读器),但通常您不应该有一个带有焦点的条目来读取从扫描仪接收到的字符串。

如果您使用的是通过蓝牙连接的外部条形码阅读器,我建议阅读this article

否则,如果您使用集成扫描仪(如 TC51 Zebra 设备),则应使用 SDK。

如果您使用的是 TC51,您可以在此处找到 SDK for Xamarin 和 here 示例,了解如何在 Xamarin.Android 中使用它。

如果您必须在 Xamarin Forms 中进行测试,您必须执行与 Xamarin.Android 相同的操作,并且当您收到条形码时,使用 MessagingCenter 发送到您的 XF 应用

void scanner_Data(object sender, Scanner.DataEventArgs e)

    ScanDataCollection scanDataCollection = e.P0;

if ((scanDataCollection != null) && (scanDataCollection.Result == ScannerResults.Success))

    IList<ScanDataCollection.ScanData> scanData = scanDataCollection.GetScanData();

    foreach (ScanDataCollection.ScanData data in scanData)
    
        displaydata(data.LabelType + " : " + data.Data);

        // Something like this
        Xamarin.Forms.MessagingCenter.Send<App> ((App)Xamarin.Forms.Application.Current, "Barcode", data.Data);
    




【讨论】:

非常感谢您的帮助。现在我尝试在 Xamarin.Forms 中做同样的事情。 Alessandro 我试图将 Zebra SDK 包含在我的项目中,但我有两个问题:第一个问题是现在该应用程序无法在传统智能手机(三星 Galaxy S4)中运行,可能是因为它不能没有扫描仪硬件。应用程序在启动时崩溃。我尝试在 AndroidManifest.xml 中使用 android:required="false" 但没有好的结果。第二个问题是我不知道 messageCenter 是如何工作的。我试图将消息从 Android 项目的 MainActivity(我可以参考 Zebra SDK)发送到便携式项目,但没有成功。 另一个注意事项:我无法调试,因为我没有 Zebra 的 USB 电缆。 为什么要将外部条码扫描器通过电线连接到设备?为什么一定要摄像头扫描或蓝牙扫描? 使用键盘模拟,您应该确保拥有带有焦点的 ui 控件并且它可以接收字符,否则您会丢失数据。出于这个原因,最好让扫描仪处于 SPP 模式,这样您就可以打开蓝牙套接字并完全控制接收器数据。

以上是关于我想用java设计一个条形码扫描器,将扫描的数字在数据库中查找详细信息,请问如何实现?解决有+的主要内容,如果未能解决你的问题,请参考以下文章

现在一张表格上有一个QRcode二维码,我想用VB做个小软件用扫描枪(USB)读取里面内容

条形码扫描出来没有括号 是怎么弄的啊

请问vb程序如何获取扫描数据?

我需要一个条形码扫描仪将其包含在我的 phonegap 项目中

JAVA实现多种类型条形码的生成与扫描

如何在其他地方使用条形码扫描仪的结果?