Hi.
I have a product that acts as a peripheral, and bonds with centrals that are typically smartphones. Normally the peripheral uses a whitelist to only connect to bonded peers, but there is also a way to add new peers.
This generally works well, but there is one scenario that is a bit confusing to our users: To add a new peer the user is supposed to press a button to make the device advertise without a whitelist. But if there is another existing bonded peer, on bootup the device automatically starts advertising with a whitelist. Switching between advertising with or without a whitelist is not the issue though.
If the user forgets to press the button, our iOS app can still see that the device is advertising and offers the user the option to connect. But the connection fails because the phone is not on the whitelist. What I'd like to do is only show the user devices that he could actually connect to. I found this old devzone case: device-still-visible-while-advertising-with-whitelist , which does pretty much what I'd like to do. But it is for Android, and as far as I could tell the flags he used to differentiate are not available on iOS.
So is there any way for an iOS app to know that a given connectable peripheral is not accepting new peers? Or some other way to identify which devices should be visible to the user? There are also legitimate cases where the user might have several units to choose from.
If there is no other way then I guess we could add some manufacturer specific data to convey the status, but I'm hoping there is some other supported way.