【问题标题】:Android - creating a QR code scannerAndroid - 创建二维码扫描仪
【发布时间】:2012-05-25 14:29:59
【问题描述】:

我想在我的应用程序中实现一个二维码扫描器,它将支持我自己的文本格式。不是联系人、电话号码或类似的东西。只是这样的一些信息:

Format:"ID:1345986;CONFIRM:1839584;NAME:JOE BAHAMA;"etc...

现在,我查看了 ZXing 源代码,但我不太明白......我需要一种方法来做到这一点,就像上面提到的那样。

有什么建议吗?

【问题讨论】:

  • 你不必完全理解zxing源代码就可以使用它。有一种通过意图实现 zxing 代码扫描器的简单方法,请查看它,因为按照 SO 标准,您的问题并不真正符合良好的条件(因此有人反对)
  • 在这个问题的接受答案中有一个例子:android-how-to-read-qr-code-in-my-application
  • 但我希望它在我的应用程序中实现,我不希望我的用户必须从市场上下载它..
  • 但是你会因为你使用的库已经更新(比如安全问题,为了争论)或者你打算编写它而让你的应用程序保持最新而头疼从头开始 :) ?除了你错过了 android 的优势之一,重用他人的工作来帮助你自己的工作,让你可以开发其他很酷的功能,而不是重新发明火箭。
  • 我使用没问题,我只是不希望用户下载另一个应用程序

标签: android barcode qr-code zxing


【解决方案1】:

基本上 QR 码只是编码一串字符,正如 in the zxing wiki 解释的那样(例如,前缀“tel:”向读者表明这是一个电话号码,读者应该接受适合电话数据的操作)。

所以您真正需要做的就是使用 ZXing 将二维码解码为字符串并进行解析。

【讨论】:

  • 但是我如何在我的应用程序中使用 ZXing,这样用户就不必下载它了??
  • 使用@Chilledrat 的解决方案,你应该没问题。
【解决方案2】:

这里有一个例子Integrate zxing barcode scanner into your Android app natively using Eclipse*,它展示了如何在你的项目中包含zxing .jar,但是它开始时要注意:

Sean Owen,ZXing 的开发人员之一,在此博客上发表了评论,警告将 ZXing 集成到您自己的应用程序中的陷阱;这样做只是为了避免让您的用户采取额外的从市场安装的步骤,这不是一个好的理由。我完全赞同这个。使用他的 cmets 中概述的基于意图的方法有很多优点。我的动机是开发一个无法进入 Android 市场的企业应用程序,并且涉及我的客户在数千台设备上手动安装 zxing,然后才能分发给其企业客户。

所以要明确一点,除非绝对必要,否则不要使用此方法,并且如果必须 - 确保覆盖您的意图过滤器,以便其他想要使用 zxing 的应用程序最终不会调用您的修改版本.另外,如果已经安装了 zxing,那么你应该默认使用它而不是你修改的版本。

.* 通过谷歌搜索“将 zxing 添加到 android 应用”并单击第一个链接找到。

【讨论】: