2012-01-12 70 views
1

我必须为我的应用程序实施条形码扫描仪。我想用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库并使用HibridBinarizer

+0

您是否看到版本6.0提供的BarcodeDemo ...? – alishaik786 2012-01-13 04:20:56

回答

-1

即使我对黑莓手机的开发并不熟悉,我有一个想法可以更加接近解决方案。

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

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

+0

getMessage()返回null。 – 2012-01-13 09:49:36

0

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

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