Как исправить сканер Zxing сканировать не только штрих-код после однократного запуска - PullRequest
0 голосов
/ 01 апреля 2019

Я создаю новое приложение, есть 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);

            }
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...