0 Replies Latest reply on Oct 23, 2018 4:49 PM by Edem Attiogbe

    Manual detection and connection to barcode scanner (Zebra DS3678) API in iOS SDK

    Edem Attiogbe

      Hello,

       

      I have inherited an internal Objective C iOS mobile app within my organization that currently uses the Zebra iOS SDK to automatically detect 'available' and 'active' near-by bluetooth barcode scanners.

       

      I'm fairly new to the Zebra iOS SDK, but my understanding is that it (ISbtSdkApi) passes a list of available scanners it detects/finds to your ISbtSdkApiDelegate conforming object as long as you send a sbtEnableAvailableScannersDetection message to the ISbtSdkApi SDK object with the parameter 'YES'.

       

      I'm trying to implement a new version of our internal app that allows a user to manually connect to a specific scanner, and does not automatically detect and allow other nearby scanners to be found and connected to. The issue I have is that in 'automatic detection' mode, other nearby scanners are being discovered, and somehow, the Zebra SDK is presenting an option to pair with other nearby scanners via a modal dialog (I'm guessing this is actually presented by Core Bluetooth). 

       

      Firstly, is there a simple way to keep automatic detection enabled (via sbtEnableAvailableScannersDetection:YES) but control when the user is presented with bluetooth pairing requests for other nearby 'available' barcode scanners through the API?

       

      Secondly, if the above isn't possible, I see that it is possible to initiate a completely manual detection flow by both:

       

      • setting sbtEnableAvailableScannersDetection:NO
      • sending the SDK object (ISbtSdkApi) the sbtGetAvailableScannersList message to get available scanners.

       

      The confusion I have is in the documentation, it states that this call doesn't update the ISbtSdkApiDelegate object of the new scanners the same way the automatic detection method does.  It seems like I need to call a different set of APIs, but I'm not sure exactly what the workflow here is.  Can someone walk me through the API workflow for manually detection and connection?