2013-11-28 97 views
0

我正在开发一款应用程序(对于单个客户),Xamarin必须使用相机读取条形码(以及可选的外置蓝牙扫描仪),并用于测试华硕TF300T,LG4xP880和Nexus 7第二版(目标机器)。从Xamarin Android应用程序使用条形码扫描仪+意图

我测试了ScandIt和ZXing,但是我用免费的条码扫描器应用程序(ZXing的同一个库,我知道,但无法获得相同的速度)的最佳结果。 我读过,我可以使用它的意图,我也可以购买加号版本(需要肖像扫描),但我找不到任何文件如何(如果可能),只有意图呼叫:

  • 配置的布局,选择纵向/横向
  • 选择条码类型(排除部分)
  • 插入一个按钮,退出扫描不读

这可能吗?

回答

1

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

布局是由设备的方向确定,没有必要指定它。但是,正如您所知道的,ZXing仅适用于横向模式,因此您需要购买用于纵向支持的加号版本。

斑马线提供两个选项用于指定条形码解码

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

根据ZXing Intents扫描模式可以是PRODUCT_MODE之一,ONE_D_MODEQR_CODE_MODEDATA_MATRIX_MODE。另外,您可以提供的格式列表,你想对任何给定的情况下

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

Plus版本是由斑马线队的肖恩·欧文出版,它的基础上斑马线支持,所以它可能具有相同的配置选项并回应相同的意图。

红利:我写了一个app for external scanners,它负责连接和配置扫描仪。它使得将蓝牙条形码扫描器支持添加到任何新的或现有的应用程序变得微不足道。把它看作是ZXing的蓝牙条码扫描。 client code在GitHub上运行,并提供入门指导。

+0

谢谢你的所有有用的信息。 明天,我会但扫描仪+和意向测试。 –

+0

我只需要使用自定义布局,并且我想知道是否可能:必不可少的是添加一个大的“取消”按钮以返回到我的应用程序而不读取条形码。 用户不会有可用的后退/菜单/家庭按钮(仍然需要弄清楚),因为平板电脑将只使用这个应用程序。 感谢您的建议,但我们排除了外部扫描仪,因为用户只有一只手可以自由操作。 –

相关问题