3 Replies Latest reply on Jan 9, 2018 2:03 AM by Darryn Campbell

    Keep SimulScan/ProfileManger instance in application class

    Martin Christmann

      Hello folks,

       

      is it possible to keep the SimulScan or any other Scanner configurations like the ProfileManage provides inside the APPLICATION class instead of handling its lifecycle inside each ACTIVITY.

       

      The use case here is, that in our application

      - we are able to scan barcodes in almost every activity

      - we use the OCR in just one particular activity

      - we use the profileManager to scan datamatrix codes

      - we use the SimulScanReader to read a structured form using OCR (camera)

       

      Our problem hereby is

      - Initializing especially the SimulScanReader has an annoying delay (2 seconds) and blocks our user. We would love to have it initialized upfront for the entire time that the app is running.

      - We have to switch between ProfilManager for barcode and SimulScanReader for OCR. Right now that is not stable and we are looking for what is the gold standard here.

       

      any suggestions will be helpful

       

      Thanks in advance!

        • Re: Keep SimulScan/ProfileManger instance in application class
          Darryn Campbell

          Hi Martin,

           

          The simplest solution for you may be to create different DataWedge profiles and associate each with an activity in your application.  By configuring the respective DW profiles appropriately e.g. one having SimulScan input enabled, another having Barcode input enabled with datamatrix etc you may avoid coding a lot of the logic into your application.  Under the covers, the ProfileManager is just creating these profiles so hopefully you are already half way there.  By letting DataWedge handle the logic of switching between the two input types (Barcode & SS) it should not block your app, be more stable & hopefully you would see a performance improvement.

           

          If you wanted to go down the code route you could use the SimulScan & Barcode API and share the instance across your different activities and this thread provides some suggestions on that: Best practice to use the scanner across multiple activities  .  I am reasonably certain that you would not be able to pre-enable both SimulScan and the Barcode API however as they depend on the same subsystem (and possibly the same physical hardware)