Как использовать Zxing с DecoratedBarcodeView и CaptureManager для сканирования только QR-кода? - PullRequest
0 голосов
/ 31 октября 2018

Я вызываю следующую функцию, чтобы начать сканирование QR-кода с моего Activity, который имеет DecoratedBarcodeView в макете.

private void openBackCamera() {
        captureManager = new CaptureManager(this, decoratedBarcodeView);
        captureManager.initializeFromIntent(getIntent(), savedInstanceState);
        captureManager.decode();

        CameraSettings cameraSettings = decoratedBarcodeView.getBarcodeView().getCameraSettings();
        cameraSettings.setAutoFocusEnabled(false);
        cameraSettings.setFocusMode(CameraSettings.FocusMode.CONTINUOUS);
        cameraSettings.setRequestedCameraId(Camera.CameraInfo.CAMERA_FACING_BACK);

        decoratedBarcodeView.pause();
        decoratedBarcodeView.getBarcodeView().setFrameRectColor(Color.WHITE);
        decoratedBarcodeView.getBarcodeView().setFramingRectSize(getSize());
        decoratedBarcodeView.getViewFinder().setVisibility(View.VISIBLE);
        decoratedBarcodeView.decodeSingle(mBarcodeResult);
        decoratedBarcodeView.resume();
    }

по умолчанию сканирует все виды штрих-кодов, и я хочу ограничить его QR-кодами.

Я попытался добавить следующие строки для запуска, чтобы они могли использоваться captureManager, когда я инициализирую его с getIntent() безрезультатно.

        intent.putExtra(Intents.Scan.MODE, Intents.Scan.QR_CODE_MODE);
        intent.putExtra(Intents.Scan.FORMATS, "QR_CODE");

Как я могу ограничить мои настройки сканированием только QR-кодов?

1 Ответ

0 голосов
/ 31 октября 2018

используется IntentIntegrator для генерации намерения запуска с форматами QR-кода вместо прямой установки дополнительных значений намерения в намерении запуска.

   public static Intent getLaunchIntent(Activity activity) {
        IntentIntegrator integrator = new IntentIntegrator(activity);
        integrator.setCaptureActivity(QrCodeScanActivity.class);
        integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
        return integrator.createScanIntent();
    }

четких примеров не было. надеюсь, это кому-нибудь поможет.

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