When I connect to a BLE peripheral device using encryption on iOS 9.1 using the iPhone 6S, the BLE peripheral device disconnects immediately. I checked that this works on iOS 8 and 9.02. I have confirmed that the CBCentralManager didConnect delegate method is called and the correct CBPeripheral object is returned.
The external BLE peripheral device shuts down immediately. I cannot even begin to detect any services or characteristics before it shuts down. The CBCentralManager didDisconnect method is called, but the error is not returned.
Does anyone else see this? This has been working correctly for over a year now, and, as I said, this only happens when using iOS 9.1 on the iPhone 6S. You do not have other 9.1 peripherals for testing.
UPDATE
According to Apple, the problem arises because we do not connect peripherals with the iPhone. Therefore, we updated the firmware on the periphery and are now connected. This creates various problems associated with maintaining connections between the phone and peripherals. Our peripheral device has a limited amount of memory, so we cannot support an infinite number of links to links. To handle this scenario, a peripheral device can store up to 8 BLE connections. When it receives the ninth request, the first link is removed from the list of peripheral devices of the associated devices. This presents a problem because the iPhone does not know that this connection has been removed, and when I try to connect to the first device and interact with the feature, I am not prompted to establish a pair. Which from my understanding is what starts with the encryption process.
I'm wondering if I can remove the connection / device from the list of connected iPhone devices at all, and then go to the Bluetooth settings and "Forget" the device.
UPDATE # 2
Apple has confirmed that there is no way to remove the associated peripheral device from the My Devices section of the Bluetooth settings in the application due to security issues.
Based on this, the scenario has now turned into the following. The iOS device has a link to what used to be a connected peripheral device in the My Devices section, however, that the peripheral device no longer refers to an iOS device in its associated device table.
When I try to connect an iOS device that still has a link in it to a peripheral device that no longer has a link to a connection, we can successfully connect. However, after a successful connection, I find the characteristic, set it to notify and receive a response and a pairing message. The only solution that fixes this problem is βSettingsβ and βForgetβ the device, and then try to reconnect.
Anyone else having this problem? Suggestions?
Thanks!