public void ReleaseScanner()
 {
     if (_claimedBarcodeScanner != null)
     {
         _claimedBarcodeScanner.DataReceived           -= _claimedBarcodeScanner_DataReceived;
         _claimedBarcodeScanner.ReleaseDeviceRequested -= _claimedBarcodeScanner_ReleaseDeviceRequested;
         _claimedBarcodeScanner.Dispose();
         _claimedBarcodeScanner = null;
     }
     _barcodeScanner = null;
 }
 public void ReleaseScanner()
 {
     if (_claimedBarcodeScanner != null)
     {
         // Detach the event handlers
         _claimedBarcodeScanner.DataReceived           -= _claimedBarcodeScanner_DataReceived;
         _claimedBarcodeScanner.ReleaseDeviceRequested -= _claimedBarcodeScanner_ReleaseDeviceRequested;
         // Release the Barcode Scanner and set to null
         _claimedBarcodeScanner.Dispose();
         _claimedBarcodeScanner = null;
     }
     _barcodeScanner = null;
 }
        private void _claimedBarcodeScanner_DataReceived(Windows.Devices.PointOfService.ClaimedBarcodeScanner sender, Windows.Devices.PointOfService.BarcodeScannerDataReceivedEventArgs args)
        {
            var rawdata     = Windows.Storage.Streams.DataReader.FromBuffer(args.Report.ScanData);
            var barcodedata = Windows.Storage.Streams.DataReader.FromBuffer(args.Report.ScanDataLabel);

            // Remove the checksum
            string strippedbc = barcodedata.ReadString(args.Report.ScanDataLabel.Length);

            strippedbc = strippedbc.Remove(strippedbc.Length - 2);
            // Trim the end
            strippedbc = strippedbc.TrimEnd();

            OnBarcodeScanned(args.Report.ScanDataType, rawdata.ReadString(args.Report.ScanData.Length), strippedbc);
        }
        /// <summary>
        /// Claim the barcode scanner
        /// </summary>
        /// <returns>true if claimed</returns>
        private async Task <bool> ClaimScanner()
        {
            if (_claimedBarcodeScanner != null)
            {
                Log.Trace("Scanner was allready claimed");
                return(true);
            }
            else
            {
                // claim the barcode scanner
                _claimedBarcodeScanner = await _barcodeScanner.ClaimScannerAsync();

                // enable the claimed barcode scanner
                if (_claimedBarcodeScanner == null)
                {
                    return(false);
                }
            }
            return(true);
        }
 private void _claimedBarcodeScanner_ReleaseDeviceRequested(object sender, Windows.Devices.PointOfService.ClaimedBarcodeScanner e)
 {
     e.RetainDevice();
     Log.Trace("Event ReleaseDeviceRequest received. Retaining the Barcode Scanner.");
 }
 private void _claimedBarcodeScanner_ReleaseDeviceRequested(object sender, Windows.Devices.PointOfService.ClaimedBarcodeScanner e)
 {
     e.RetainDevice();
 }