21

我想为 Android 创建一个应用程序,它能够扫描条形码,获取条形码中包含的信息,然后能够以某种方式使用该信息。

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

一些链接:


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

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

使用ZXing制作安卓条码扫描APP


然而,我在 zxing 上找到的示例涉及必须提示用户去市场并安装 zxing 条形码扫描仪,以便我的应用程序可以在需要时调用条形码扫描仪,然后条形码扫描仪会将信息返回给我的应用程序。

虽然这对我来说是一个很好的起点,但我想知道是否有任何其他选项可以让我在自己的应用程序中嵌入条形码扫描仪,而无需提示用户下载辅助应用程序?

4

7 回答 7

21

开发商在这里。我认为您最终只想通过 Intent 进行集成。您可以免费获得改进、错误修复和特定于平台的解决方法。它的代码也少得多。但我知道你在寻求替代方案。

您可能想要剥离 Barcode Scanner(其源代码在项目中的 android/ 中)并剥离您不需要的所有内容。这意味着只留下关于com.google.zxing.client.androidcom.google.zxing.client.android.camera包的信息。核心解码在 中DecodeThread,但这些包中的其他代码实现了小回调舞蹈,它进行连续扫描并获得通常的扫描 UI。

如果您嵌入代码,您需要遵守Apache 许可证的条款。

于 2010-04-10T16:21:40.900 回答
7

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

于 2010-04-09T13:45:41.380 回答
6

Google Mobile Vision 已弃用,并由 ML Kit 取代。https://developers.google.com/ml-kit/vision/barcode-scanning 它在 android 和 iOS 上都提供了 sdks,并且正在通过最新的 google 技术得到积极改进。对于 android,它提供了可以捆绑模型的 sdks,如果您想节省应用程序的大小,它还提供可以自动从 Google play 服务获取模型的 SDK。

于 2021-03-02T21:45:19.620 回答
4

查看包含条形码跟踪的新 Google Play Services 7.8 API: https ://developers.google.com/vision/barcodes-overview

于 2015-08-15T03:18:36.547 回答
2

我建议您通过意图使用 Zxing,"market://details?id=com.google.zxing.client.android"如果它不存在(捕获),则重定向到 Android 市场页面( ActivityNotFoundException)。Intent 非常适合像这样的应用间通信。

于 2010-04-09T14:16:39.980 回答
1

我建议使用谷歌条形码扫描。它反应灵敏。它被称为谷歌移动视觉。

Barcode Scanner API 实时检测任何方向的条形码。您还可以同时检测和解析多个不同格式的条形码。

https://developers.google.com/vision/

https://codelabs.developers.google.com/codelabs/bar-codes/#0

于 2017-05-24T15:52:50.667 回答
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

无需安装单独的扫描仪

于 2015-11-24T10:46:04.747 回答