Я создаю новое приложение, есть 3 режима сканирования, один для шкафа, один для шкафчика и один для блокировки!весь код находится в результате обработки, и после каждого сканирования я делаю сканер resumeScannerPreview, проблема в том, что после первого сканирования, сканер сканирует не только штрих-код, он сканирует текст также, если я буду минутой или меньше на слове этоотсканирует и покажет мне странный номер!как это исправить?
я пытался увидеть, если это произойдет только с одним сканированием, а не
это код, который происходит в результате обработки дескриптора
public void handleResult(Result result) {
final String myResult = result.getText();
final String check = myResult.trim();
if (State == 0) {
ClosetTextId=check;
if (LockerAmbinDB.CheckCloset(Integer.parseInt(check)) == true) {
try {
ClosedId = Integer.parseInt(check);
LockerByCloset = LockerAmbinDB.GetAllLockerByCloset(ClosedId);
temp=String.valueOf( LockerByCloset.get(countScan).getId());
sub_text=temp.substring(ClosetTextId.length());
//Toast.makeText(getContext(),"" +LockerByCloset.size()+ "", Toast.LENGTH_LONG).show();
} catch (NumberFormatException nfe) {
{
State++;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ClosetText.setVisibility(ClosetText.GONE);
LockerText.setVisibility(LockerText.VISIBLE);
LockerNextText.setText("אנא סרוק את לוקר " + sub_text+ "");
LockerNextText.setVisibility(LockerNextText.VISIBLE);
scannerView.resumeCameraPreview(BarCodeScanner.this);
}
}, 1200);
}
else{
functions.showAlertDialog(
getActivity(),
"ארון לא נמצא",
"הארון אינו קיים באתר, נא סרוק ברקוד שנית.",
false);
scannerView.resumeCameraPreview(BarCodeScanner.this);
}
}else {
if (countScan < LockerByCloset.size()) {
if (State == 1) {
String total=ClosetTextId+""+check;
try {
LockerId = Integer.parseInt(total);
} catch (NumberFormatException nfe) {
Toast.makeText(getContext(), "Could not parse" + nfe, Toast.LENGTH_LONG).show();
//System.out.println("Could not parse " + nfe);
}
if(LockerId==LockerByCloset.get(countScan).getId()) {
LockText.setVisibility(LockerText.GONE);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
scannerView.resumeCameraPreview(BarCodeScanner.this);
LockerText.setVisibility(LockerText.GONE);
LockText.setVisibility(LockText.VISIBLE);
State++;
}
}, 1200);
}
else{
functions.showAlertDialog(
getActivity(),
"לוקר שגוי",
"מספר לוקר שגוי,אנא סרקו את הלוקר הנכון.",
false);
scannerView.resumeCameraPreview(BarCodeScanner.this);
}
} else if (State == 2) {
Locker locker = new Locker();
locker.setClosetId(ClosedId);
locker.setId(LockerId);
locker.setLockId(myResult);
locker.setIsUpdate(1);
LockerAmbinDB.addLockBundle(locker);
countScan++;
State--;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if(countScan < LockerByCloset.size()) {
temp=String.valueOf( LockerByCloset.get(countScan).getId());
sub_text=temp.substring(ClosetTextId.length());
scannerView.resumeCameraPreview(BarCodeScanner.this);
LockText.setVisibility(LockText.GONE);
LockerText.setVisibility(LockerText.VISIBLE);
LockerNextText.setText("אנא סרוק את לוקר " + sub_text + "");
LockerNextText.setVisibility(LockerNextText.VISIBLE);
//LockText.setVisibility(LockText.VISIBLE);
}
else{
scannerView.stopCamera();
CheckResultAndSend();
}
}
}, 1200);
}
}
}