com.symbol.scanning.Scanner$ScannerExceptions: Scanner is in an invalid state to make the operation

D Daniel van der Tang 3 years 5 months ago
58 0 0

Hello,

We've some TC25 devices where the scanner doesn't pass status and scans to the application via emdk when a user triggers to fast. The app doesn't crash or show an exception. But when this occurs i see the following in the device monitor.

After this exception the app doesn't receive status updates (latest is WAITING) and barcode scans:

03-01 03:32:55.952: W/System.err(7284): com.symbol.scanning.Scanner$ScannerExceptions: Scanner is in an invalid state to make the operation03-01 03:32:55.952: W/System.err(7284): at com.symbol.scanning.Scanner.createScannerException(Scanner.java:376)03-01 03:32:55.952: W/System.err(7284): at com.symbol.scanning.Scanner.readSubmitLegacy(Scanner.java:2620)03-01 03:32:55.952: W/System.err(7284): at com.symbol.scanning.Scanner.scanSubmitRead(Scanner.java:3068)03-01 03:32:55.952: W/System.err(7284): at com.symbol.emdk.emdkservice.barcode.SvcScanner$8.run(SvcScanner.java:865)03-01 03:32:55.952: W/System.err(7284): at android.os.Handler.handleCallback(Handler.java:751)03-01 03:32:55.953: W/System.err(7284): at android.os.Handler.dispatchMessage(Handler.java:95)03-01 03:32:55.953: W/System.err(7284): at android.os.Looper.loop(Looper.java:154)03-01 03:32:55.953: W/System.err(7284): at android.os.HandlerThread.run(HandlerThread.java:61)
The device is always working with hard trigger and always the internal 2d scanner. This is the status code in Xamarin Android.

        private void scanner_Status(object sender, Scanner.StatusEventArgs e)         {             StatusData statusData = e.P0;             StatusData.ScannerStates state = e.P0.State;             Console.WriteLine(DateTime.Now.ToString());             Console.WriteLine("scanner state");             Console.WriteLine(state);             if (state == StatusData.ScannerStates.Idle)             {                 if (GlobalApplication.ZebraScanner.IsEnabled && !GlobalApplication.ZebraScanner.IsReadPending)                 {                     try                     {                         Thread.Sleep(300);                         if (GlobalApplication.ZebraScanner.IsEnabled && !GlobalApplication.ZebraScanner.IsReadPending)                         {                             GlobalApplication.ZebraScanner.Read();                         }                     }                     catch (ScannerException ex)                     {                         Console.WriteLine(ex.Message);                         Console.WriteLine(ex.StackTrace);                     }                     catch (NullReferenceException ex)                     {                         Console.WriteLine(ex.Message);                         Console.WriteLine(ex.StackTrace);                     }                 }             }         }
Is there a way to solve this issue?

CONTACT
Can’t find what you’re looking for?