如何为Blackberry实施条形码扫描仪?

时间:2012-01-12 14:51:05

标签: java blackberry barcode

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

我不能简单地创建一个UIApplication,因为我的应用程序也适用于没有Blackberry设备(但条形码阅读器仅适用于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

2 个答案:

答案 0 :(得分:0)

ReaderException是正常的,只是意味着无法解码特定图像。您的代码可能也可能不正常。如果没有图像可以工作,那么你的代码可能会出现问题。

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

答案 1 :(得分:-1)

即使我不熟悉Blackberry的开发,我也有一个想法,可以更接近解决方案。

Java中可以引发的所有内容都必须来自java.lang.Throwable。因此,即使您获得的ReaderException也应该有一个名为getMessage()的方法。

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