【问题标题】:How to implement a barcode scanner for Blackberry?如何为黑莓实现条码扫描器?
【发布时间】:2012-01-12 14:51:04
【问题描述】:

我必须为我的应用程序实现条形码扫描仪。我想用 zxing 做我的工作。

我不能简单地创建一个 UIApplication,因为我的应用程序也不适用于黑莓设备(但条形码阅读器仅适用于 BB)

我已经阅读了很多示例,但我认为我需要具体的帮助:

我已经为 BB9700 实现了一个 midlet:当用户按下按钮时,

1) 相机应用程序被调用(我的 midlet 进入后台模式)
2) 用户将照片拍摄到数据矩阵图像
3)当用户返回时,我的应用程序处于活动状态并尝试检测条形码结果。

主类实现了FileSystemJournalListener,所以当一个文件被添加时,这个类会这样处理它:

EncodedImage encodedImage = EncodedImage.createEncodedImage(imageData, 0, imageData.length);
Bitmap bmp = encodedImage.getBitmap();
DataMatrixReader reader = new DataMatrixReader();
LuminanceSource source = new BitmapLuminanceSource(bmp);
BinaryBitmap bitmap = new BinaryBitmap(new GlobalHistogramBinarizer(source));
result = reader.decode(bitmap);

每次我尝试解码图像时,都会引发 ReaderException。

我用相机拍的照片很完美,而且图像处理正确(我把它打印到屏幕上测试,照片还可以)。

为什么我不能得到正确的结果?我正确使用了zxing lib?

我也看过HybridGinarizer,可惜我用的zxing版本有点老了。

我是否只需更新zxing lib 并使用HibridBinarizer

【问题讨论】:

  • 看到6.0版本提供的BarcodeDemo了吗...?

标签: java blackberry barcode


【解决方案1】:

ReaderException 是正常的,仅表示无法解码特定图像。您的代码可能正常,也可能不正常。如果没有图像工作,那么您的代码可能有问题。

您应该真正使用最新的版本,而不是 BB SDK 中的版本。

【讨论】:

    【解决方案2】:

    即使我不熟悉黑莓的开发,我也有一个离解决方案更近一步的想法。

    Java 中所有可以抛出的东西都必须派生自java.lang.Throwable。因此,即使你得到的ReaderException 也应该有一个名为getMessage() 的方法。

    也许您现在可以尝试捕获异常并在 UI 上打印消息?也许您正在使用的库在那里提供了更多信息...如果您有像 eclipse 这样的 IDE 并且可以将调试器附加到在您的 BlackBerry 上运行的应用程序,事情会变得更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多