Android 5 或 6(或未来版本)是否像 iOS 一样具有内置条码扫描功能 API?

Does Android 5 or 6 (or future version) have a built-in barcode scanning API like iOS does?

从 iOS7 开始,Apple 添加了使用 AV Foundation 的内置基本条码扫描功能。

Android5 或 6(或任何未来版本)有类似的东西吗?

UPC、EAN、二维码等基本内容

很遗憾,不行...您必须使用外部项目,例如:

https://github.com/zxing/zxing

https://github.com/dm77/barcodescanner

Android 没有,但 Google 播放服务 Vision API 有。

要使用它,您需要将 Google Play Services SDK 作为依赖项添加到您的应用中,最终用户将需要 Google Play Services 和 Android他们的设备上安装了 4.2.2 或更高版本。

The Vision API目前支持以下格式

  • 一维条码:EAN-13、EAN-8、UPC-A、UPC-E、Code-39、Code-93、Code-128、ITF、Codabar
  • 二维条码:二维码、数据矩阵、PDF-417、AZTEC

没有单一的 API 可以在 Android 上扫描条形码,并且根据您想要实现的目标,您可以使用不同的解决方案。

我个人将可用的解决方案分为三类:

  • 媒体管道,类似于 Google Play Service (Vision API](https://developers.google.com/vision/)
  • 提供的东西
  • 简单 "scan-a-barcode" API,这是现在 ZXing 及其 Intent based interface
  • 可以拥有的东西
  • 专业的条码扫描库,或者更可能是包含硬件条码扫描仪的自定义 HW 设备,例如 Zebra、Honeywell、Panasonic 等的设备。这些解决方案始终包含供应商特定的库,其性能比 ZXing 高得多使用相机。

I build a presentation about this some time ago。 tldr 是:取决于您想要实现的目标、您需要读取的条形码数量以及此功能在您的解决方案中的重要性。

关于没有 Google Play 服务的设备的说明(也就是说,没有 Google Mobile Services,GPS 是其中的一部分):不仅便宜的设备在没有 GMS 的情况下销售,在中国 Google 服务通常不可用,设备也没有。有时不带 GMS 的另一类设备是企业坚固型设备。为在业务线场景中使用而构建,他们尽量避免 GMS,因为 GMS 被视为比其他任何事情都更重要的负担。
This is a niche market where barcode scanning is one of the main feature

disclaymer 我在 Zebra Technologies 工作,该公司是 Enterprise Rugged Android 设备的制造商。