Example #1
0
 protected override void OnDisappearing()
 {
     if (barCodeString == "")
     {
         BarcodeRead?.Invoke(this, barCodeButton + ": Não foi possível ler o código.");
     }
     zXing.IsScanning = false;
     base.OnDisappearing();
 }
 public void Handle_OnScanResult(Result result)
 {
     //pega as informações do código lido e exibe
     Device.BeginInvokeOnMainThread(async() =>
     {
         if (!PopUp)
         {
             PopUp = true;
             BarcodeRead?.Invoke(this, result.BarcodeFormat + ": " + result.Text);
             btnResult.Text = result.BarcodeFormat + ": " + result.Text;
             await DisplayAlert("Código " + result.BarcodeFormat, result.BarcodeFormat + ": " + result.Text, "OK");
             PopUp = false;
         }
     });
 }
Example #3
0
 //Timer elapses
 private void OnTimedEvent(object sender, ElapsedEventArgs e)
 {
     //Is it a barcode?
     if ((timestarted.AddMilliseconds(600) > DateTime.Now) && (possible.Length > 5)
             && (timestarted != DateTime.MinValue) && possible.Contains("\r"))
     {
         barcode = possible;
         barcode = barcode.Remove(0, 1);
         barcode = barcode.Replace("\r", "");
         //launch delegate
         if (OnBarcodeRead != null)
         {
             OnBarcodeRead.Invoke(barcode);                    
         }
     }
     //delete timers
     timestarted = DateTime.MinValue;
     InputTimeout.Dispose();
     InputTimeout = null;
     possible = null;
 }
Example #4
0
        public TelaCodigoBarras(string op)
        {
            /*MobileBarcodeScanningOptions optionCode = this.optionCode;*/

            InitializeComponent();

            // Configuração da Leitura
            this.optionsEan8 = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                // Todos os formatos que códigos que serão aceitos
                PossibleFormats = new List <ZXing.BarcodeFormat> {
                    ZXing.BarcodeFormat.EAN_8
                }
            };

            this.optionsEan13 = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                // Todos os formatos que códigos que serão aceitos
                PossibleFormats = new List <ZXing.BarcodeFormat> {
                    ZXing.BarcodeFormat.EAN_13
                }
            };

            this.optionsEan14 = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                // Todos os formatos que códigos que serão aceitos
                PossibleFormats = new List <ZXing.BarcodeFormat> {
                    ZXing.BarcodeFormat.EAN_8,
                    ZXing.BarcodeFormat.CODE_128
                }
            };

            this.optionsQrCode = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                // Todos os formatos que códigos que serão aceitos
                PossibleFormats = new List <ZXing.BarcodeFormat> {
                    ZXing.BarcodeFormat.QR_CODE
                }
            };

            switch (op)
            {
            case "EAN_8":
                barCodeButton = op;
                zXing         = new ZXingScannerView
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    Options           = optionsEan8
                };
                break;

            case "EAN_13":
                barCodeButton = op;
                zXing         = new ZXingScannerView
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    Options           = optionsEan13
                };
                break;

            case "EAN_14":
                barCodeButton = op;
                zXing         = new ZXingScannerView
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    Options           = optionsEan14
                };
                break;

            case "QR_CODE":
                barCodeButton = op;
                zXing         = new ZXingScannerView
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    Options           = optionsQrCode
                };
                break;
            }

            zXing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                // Finaliza a leitura
                zXing.IsAnalyzing = false;

                barCodeString = result.Text;
                // Pega as informações do código lido
                BarcodeRead?.Invoke(this, barCodeButton + ": " + barCodeString);
                await Navigation.PopModalAsync();
            });

            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Aproxime do código para leitura",
                BottomText      = "O código será lido automaticamente",
                ShowFlashButton = zXing.HasTorch
            };

            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand
            };

            grid.Children.Add(zXing);
            grid.Children.Add(overlay);

            Content = grid;
        }