使用条码扫描器+与Xamarin Android应用程序的意图

时间:2013-11-28 16:38:22

标签: xamarin.android xamarin barcode zxing barcode-scanner

我正在为Xamarin开发一个应用程序(针对单个客户),必须使用相机读取条形码(并且可选择使用外部蓝牙扫描仪),并用于测试华硕TF300T,LG4xP880和Nexus 7第二版(目标机器)。

我测试了ScandIt和ZXing,但是我使用免费的Barcode Scanner应用程序获得了最好的结果(ZXing的同一个库,我知道,但速度不一样)。 我已经读过我可以有意图使用它,我也可以购买加号版本(需要肖像扫描),但我找不到任何关于如何(如果可能的话)的文档,只有意向调用:

  • 配置布局,选择纵向/横向
  • 选择条形码类型(不包括某些)
  • 插入按钮退出扫描而不读取

有可能吗?

1 个答案:

答案 0 :(得分:1)

ZXing提供了一个IntentIntegrator类,可以启动ZXing或提示用户从Google Play商店安装它。但是,如果您知道安装了条形码扫描仪或条形码扫描仪,则可以自己致电StartActivityForResult。这是recipe using StartActivityForResult

布局由设备的方向决定,无需指定。但是,如您所知,ZXing仅适用于横向,因此您需要购买加号版本以获得纵向支持。

ZXing提供了两个指定要解码的条形码的选项

intent.putExtra("SCAN_MODE", ...)

根据ZXing Intents扫描模式,可以是PRODUCT_MODEONE_D_MODEQR_CODE_MODEDATA_MATRIX_MODE之一。或者,您可以提供您希望为任何给定实例支持的格式列表

intent.putExtra("SCAN_FORMATS", "EAN_13,EAN_8,QR_CODE,...")

加号版本由ZXing团队的Sean Owen发布,它基于ZXing,因此它可能具有相同的配置选项并响应相同的意图。

加分:我写了一个app for external scanners来完成连接和配置扫描仪的繁重工作。将蓝牙条码扫描器支持添加到任何新的或现有的应用程序是非常简单的。可以把它想象成ZXing用于蓝牙条码扫描。 client code在GitHub上,并提供了入门指南。