void InitializeAndStartBarcodeScanning()
        {
            // The scanning behavior of the barcode picker is configured through scan
            // settings. We start with empty scan settings and enable a generous set
            // of 1D symbologies. MatrixScan is currently only supported for 1D
            // symbologies, enabling 2D symbologies will result in unexpected results.
            // In your own apps, only enable the symbologies you actually need.
            ScanSettings settings = ScanSettings.Create();

            int[] symbologiesToEnable = new int[] {
                Barcode.SymbologyEan13,
                Barcode.SymbologyEan8,
                Barcode.SymbologyUpca,
                Barcode.SymbologyCode39,
                Barcode.SymbologyCode128,
                Barcode.SymbologyInterleaved2Of5,
                Barcode.SymbologyUpce
            };

            foreach (int symbology in symbologiesToEnable)
            {
                settings.SetSymbologyEnabled(symbology, true);
            }

            // Enable MatrixScan and set the max number of barcodes that can be recognized per frame
            // to some reasonable number for your use case. The max number of codes per frame does not
            // limit the number of codes that can be tracked at the same time, it only limits the
            // number of codes that can be newly recognized per frame.
            settings.MatrixScanEnabled        = true;
            settings.MaxNumberOfCodesPerFrame = 10;

            // Prefer the back-facing camera, if there is any.
            settings.CameraFacingPreference = ScanSettings.CameraFacingBack;

            barcodePicker = new BarcodePicker(this, settings);
            barcodePicker.OverlayView.SetGuiStyle(ScanOverlay.GuiStyleMatrixScan);

            // Set the GUI style to MatrixScan to see a visualization of the tracked barcodes. If you
            // would like to visualize it yourself, set it to ScanOverlay.GuiStyleNone and update your
            // visualization in the didProcess() callback.
            barcodePicker.OverlayView.SetGuiStyle(ScanOverlay.GuiStyleMatrixScan);

            // When using MatrixScan vibrating is often not desired.
            barcodePicker.OverlayView.SetVibrateEnabled(false);

            // Register listener, in order to be notified about relevant events
            // (e.g. a successfully scanned bar code).
            barcodePicker.SetOnScanListener(this);

            // Register a process frame listener to be able to reject tracked codes.
            barcodePicker.SetProcessFrameListener(this);

            // Set listener for the scan event.
            barcodePicker.SetOnScanListener(this);

            // Show the scan user interface
            SetContentView(barcodePicker);
        }