4

We using the ZXING library to scan the barcodes for xamarin forms app and its working fine.

But now are having issue with barcode - code128 format as its not scanning the bar codes (content length - 19 char ). Attached barcode for reference.

enter image description here

We using Zxing version - 2.4.1(Latest stable).

We have used the below code but its not working for both Android & iOS platforms.

Kindly suggest/provide your inputs on resolving the issue.

 private void Btn_BarcodeClicked(object sender, EventArgs e)
    {
        try
        {
            var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
            options.PossibleFormats = new List<ZXing.BarcodeFormat>() {
                ZXing.BarcodeFormat.CODE_39,
                ZXing.BarcodeFormat.CODE_93,
                ZXing.BarcodeFormat.CODE_128,
                ZXing.BarcodeFormat.EAN_13,
                ZXing.BarcodeFormat.QR_CODE
            };
            options.TryHarder = false;
            options.BuildBarcodeReader().Options.AllowedLengths = new[] { 44 };

            var scanPage = new ZXingScannerPage(options);
            scanPage.DefaultOverlayTopText = "";
            scanPage.DefaultOverlayBottomText = "";
            scanPage.AutoFocus();
            ToolbarItem toolbarItem = new ToolbarItem();
            toolbarItem.Text = "Flash ON";
            toolbarItem.Clicked += (s, ex) =>
            {
                try
                {
                    toolbarItem.Text = "Flash " + (toolbarItem.Text == "Flash ON" ? "OFF" : "ON");
                    //if (scanPage.HasTorch)
                    scanPage.ToggleTorch();
                }
                catch (Exception exx)
                {
                }
            };
            scanPage.ToolbarItems.Add(toolbarItem);
            TimeSpan ts = new TimeSpan(0, 0, 0, 1, 0);
            Device.StartTimer(ts, () =>
            {
                if (scanPage.IsScanning)
                    scanPage.AutoFocus();
                return scanPage.IsScanning;
            });
            scanPage.OnScanResult += (result) =>
            {
                scanPage.IsScanning = false;
                Device.BeginInvokeOnMainThread(async () =>
                {
                    await DisplayAlert("Alert", result.Text, "Ok");
                });
            };
            Navigation.PushAsync(scanPage);
        }
        catch (Exception ex)
        {

        }
    }
Tilman Hausherr
  • 14,950
  • 6
  • 51
  • 80
Kathir
  • 127
  • 2
  • 19

0 Answers0