Как реализовать сканер штрих-кода для Blackberry? - PullRequest
1 голос
/ 12 января 2012

Я должен реализовать сканер штрих-кода для моего приложения. Я хочу использовать zxing для своей работы.

Я не могу просто создать приложение UIA, потому что мое приложение также не для устройств Blackberry (но устройство считывания штрих-кода предназначено только для BB)

Я прочитал много примеров, но думаю, что мне нужна конкретная помощь:

Я реализовал мидлет для BB9700: когда пользователь нажимает кнопку,

1) приложение камеры вызывается (и мой мидлет переходит в фоновый режим)
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 голосов
/ 12 января 2012

ReaderException - это нормально и означает, что конкретное изображение не может быть декодировано. Ваш код может быть или не быть в порядке. Если изображения не работают, значит, с вашим кодом что-то не так.

Вы действительно должны использовать самую последнюю версию, а не ту, что в BB SDK.

0 голосов
/ 12 января 2012

Даже если я не знаком с разработкой Blackberry, у меня есть идея приблизиться к решению.

Все, что может быть выдано в Java, должно происходить из java.lang.Throwable .Поэтому даже у вашего ReaderException, который вы получаете, должен быть метод с именем getMessage().

Может быть, вы могли бы теперь попытаться отловить исключение и напечатать сообщение в интерфейсе пользователя?Возможно, используемая вами библиотека предоставляет больше информации ... Если у вас есть IDE, например eclipse и , с возможностью присоединить отладчик к приложению, запущенному на вашем BlackBerry, все становится проще.

...