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


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?