Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 89864

ZXing.Net.Mobile (Xamarin.Forms/Android) Scan on different pages do not reaktivate scanner

$
0
0

I have implemented a Xamarin.Forms App focused on Android which should scan barcodes on different pages. (Followed this description ‚https://blog.xamarin.com/barcode-scanning-made-easy-with-zxing-net-for-xamarin-forms/‘ (Thanks! James Montemagno))

I initialize the scanner control (defined in xaml) in the constructor of the codebehind class:

    <ContentPage.Content>
        <AbsoluteLayout>
            <AbsoluteLayout.Children>
                <z:ZXingScannerView
                    x:Name="zScanner"
                    AbsoluteLayout.LayoutBounds="0.5,0.5,1,1"
                    AbsoluteLayout.LayoutFlags="All"
                    HorizontalOptions="FillAndExpand"
                    IsScanning="True"                    
                    OnScanResult="ZScanner_OnOnScanResult"
                    VerticalOptions="FillAndExpand" />
                <z:ZXingDefaultOverlay
                    x:Name="zOverlay"
                    ShowFlashButton="False"
                    AbsoluteLayout.LayoutBounds="0.5,0.5,1,1"
                    AbsoluteLayout.LayoutFlags="All"
                    HorizontalOptions="FillAndExpand"
                    VerticalOptions="FillAndExpand" />
….

For embedding into the own page layout I use the ZXingScannerView-Control.

    public TicketScan()
     {
         InitializeComponent();

         // https://components.xamarin.com/gettingstarted/zxing.net.mobile.forms
         // https://blog.xamarin.com/barcode-scanning-made-easy-with-zxing-net-for-xamarin-forms/
         var zXingOptions = new MobileBarcodeScanningOptions()
         {
             DelayBetweenContinuousScans = 1000, // msec
             UseFrontCameraIfAvailable = false,
             PossibleFormats = new List<BarcodeFormat>(new[]
             {
                 BarcodeFormat.EAN_8,
                 BarcodeFormat.EAN_13,
                 BarcodeFormat.CODE_128,
                 BarcodeFormat.QR_CODE
             }),
             TryHarder = true //Gets or sets a flag which cause a deeper look into the bitmap.
         };
         zScanner.Options = zXingOptions;

         // https://github.com/Redth/ZXing.Net.Mobile/issues/427
         zOverlay.BindingContext = zOverlay;

         fab.Clicked = OnClick_AddFabButton;
    }

The first scan page works as expected.
When I leave the page I pause the scanner here:

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        zScanner.IsScanning = false;
    }

(Otherwise the scanner will scan on each further page even if no scanner control is on the page (?!) And the camera works all the time.)
On a second page I try to initialize the scanner on the same way and set IsScanning = true.

        protected override void OnAppearing()
        {
            zScanner.IsScanning = true;
            base.OnAppearing();
        }

But on this second page I see only a frozen camera picture (maybe the last shot from the first usage)
How can I use the ZXing scanner component for Xamarin.Forms on different pages without turned on camera for the whole camera usage?
thx


Viewing all articles
Browse latest Browse all 89864

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>