安卓-条形码扫描,有哪些选项?Zxing?

21

我希望创建一个Android应用程序,可以扫描条形码,获取条形码中包含的信息,并能以某种方式使用该信息。

我不知道如何创建一个条形码扫描器,所以我去谷歌搜索了一下,似乎Zxing是在应用程序中实现条形码扫描最常用的方法。

一些链接:


http://code.google.com/p/zxing/

http://awalkingcity.com/blog/2008/08/25/qr-codes-made-easy-in-android/

使用ZXing创建Android条形码扫描应用程序


然而,我在zxing上找到的示例涉及提示用户前往市场并安装zxing条形码扫描器,以便我的应用程序在需要时调用条形码扫描器,然后条形码扫描器将返回信息给我的应用程序。虽然这对我来说是一个好的起点,但我想知道是否有其他选项可以让我在自己的应用程序中嵌入条形码扫描器,而不必提示用户下载第二个应用程序?

可能是 https://dev59.com/nnI-5IYBdhLWcg3wBjhR 的重复问题。 - Christopher Orr
试试我的博客,可能会有帮助。 http://mcondev.wordpress.com/2011/06/24/zxing-1-7-for-android-on-eclipse/ - Siddharth
只是提醒一下 - http://code.google.com/p/zxing 已经迁移到 https://github.com/zxing/zxing - Les
我编写了生成条形码和扫描条形码的代码。您可以按照以下步骤获取代码。https://dev59.com/0Z3ha4cB1Zd3GeqPZcNJ#58742737 - Pramesh Bhalala
7个回答

21

我是一个开发者。我认为最终您只需通过Intent集成即可。您将免费获得改进、错误修复和特定于平台的解决方法。它所需的代码也较少。但我明白您正在寻求替代方案。

您可能想要精简条形码扫描器(源代码在项目中的android/中),并删除您不需要的所有内容。这意味着仅保留com.google.zxing.client.androidcom.google.zxing.client.android.camera包。核心解码在DecodeThread中,但这些包中的其他代码实现了小型回调操作,用于连续扫描并获取通常的扫描UI。

如果您嵌入了该代码,则需要遵循Apache许可协议的条款。


@james-baca,你对我的回答所做的修改基本上是恶意破坏,已经被撤销了。请自己编写一篇广告你的服务的答案。 - Sean Owen
我指的是Google Play服务,它是一个很棒的东西。我的意思是在编辑中覆盖其他人的答案。 - Sean Owen
我编写了生成条形码和扫描条形码的代码。您可以按照以下步骤获取代码。https://dev59.com/0Z3ha4cB1Zd3GeqPZcNJ#58742737 - Pramesh Bhalala

7

通过添加自己的代码来下载和扩展Zxing“条形码扫描器”应用程序。它在Apache 2.0许可下发布。


那么基本上就是拿Zxing源代码并重写它以实现我想要的功能? - Donal Rafferty
这将是我的建议。您可能只需包含现有的源代码,调用它并轻松捕获返回的条形码。我猜您几乎不需要更改任何代码。 - Chris K

7

Google Mobile Vision已经被弃用,现在使用ML Kit替代。 https://developers.google.com/ml-kit/vision/barcode-scanning 它提供了Android和iOS的SDK,并且正在积极地改进,采用了最新的Google技术。 对于Android,它提供了可以捆绑模型的SDK,并且还提供了可以从Google Play服务自动获取模型的SDK,这样可以节省应用程序的大小。


4

我编写了生成条形码和扫描条形码的代码。您可以按照以下步骤获取代码。https://dev59.com/0Z3ha4cB1Zd3GeqPZcNJ#58742737 - Pramesh Bhalala

2

我建议您通过意图使用Zxing,并在其不存在时重定向到Android市场页面("market://details?id=com.google.zxing.client.android")(捕获ActivityNotFoundException)。这样的情况下,意图非常适用于此类应用间通信。


4
我知道我可以这样做,但是我想要的是不必让用户安装另一个扫描应用程序的替代方法。 - Donal Rafferty

1

Google Mobile Vision已被弃用,现已更换为ML Kit。https://developers.google.com/ml-kit/vision/barcode-scanning 它提供了Android和iOS的SDK,并且正在积极地改进,采用最新的谷歌技术。对于Android,它提供了可以捆绑模型的SDK,还提供了可以自动从Google Play服务获取模型的SDK,以便您节省应用程序的大小。 - Chenxi Song

0

我已经用这个方法使它工作:

repositories { mavenCentral()
    maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" }
}

compile 'com.google.zxing:core:3.2.1'
compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'
compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'

我建议使用IntentIntegrator

IntentIntegrator integrator = new IntentIntegrator(getActivity()); 
integrator.forSupportFragment(this).initiateScan();

requestCode 带回来

IntentIntegrator.REQUEST_CODE

无需安装单独的扫描仪


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接