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?