Я использую следующий код для декодера 2D-QR-кода.
package com.test.rim;
import java.util.*;
import net.rim.device.api.barcodelib.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import com.google.zxing.*;
final class BarcodeScanScreen extends MainScreen{
BarcodeScanScreen barcodeScanScreen;
BarcodeScanScreen(){
BarcodeDecoderListener listener = new BarcodeDecoderListener(){
public void barcodeDecoded( String rawText )
{
Dialog.alert(rawText);
}
};
Hashtable hints = new Hashtable(1);
Vector formats = new Vector(1);
formats.addElement(BarcodeFormat.QR_CODE);
hints.put(DecodeHintType.POSSIBLE_FORMATS, formats);
BarcodeDecoder decoder = new BarcodeDecoder( hints );
try{
BarcodeScanner scanner = new BarcodeScanner( decoder, listener );
scanner.getVideoControl().setDisplayFullScreen( true );
add( scanner.getViewfinder() );
scanner.startScan();
}catch (Exception e)
{
// Catch errors here
Dialog.alert("Error:" + e.getMessage());
}
}
}
Чтобы запустить этот экран, я запускаю код app.pushScreen(new BarcodeScanScreen());
при нажатии кнопки с предыдущего экрана.
Когда я запускаю код, BarcodeScanScreen
запускается правильно, и сканирование также продолжается (так как мигает красный индикатор устройства).Как только я помещаю камеру перед любым действующим кодом 2D-QR, мигание прекращается.Я думаю, это означает, что любой штрих-код успешно декодируется и, следовательно, сканер останавливается.Но метод barcodeDecoded()
не запускается, так как на экране не появляется предупреждающий массаж.В чем проблема в моем коде?