Hi there!
My team and I are currently working on developing an iOS application that connects to our proprietary hardware using Bluetooth technology. During our development process, we encountered an issue related to the central manager's behavior. Specifically, the central manager only disconnects the peripheral device from the app level, leaving the connection active at the system level.
In the context of the cancelPeripheralConnection
discussion, one of the reasons cited for not allowing the app to disconnect the peripheral from the system is as follows:
Because other apps may still have a connection to the peripheral, canceling a local connection doesn’t guarantee that the underlying physical link is immediately disconnected (source)
For our situation, the challenge lies in the fact that no other application should have access to this specific peripheral. It is designed exclusively for our system's use. To address this, our current workaround involves sending a custom disconnect command to our device via a designated characteristic. However, we are keen to explore if there's a way to establish the initial connection to the peripheral in a manner that avoids creating a system-level connection altogether.
Thank you for your assistance!
Liz