So Apple finally released iOS 6.0, and it has gotten som big improvements to its BLE stack, there is also a bug I will write some about in it’s own post.
The improvements I’ve seen so far is :
- Service scanning seems to be much faster than in iOS 5.1 the first time
- Characteristic discovery also seems to be much faster the first time.
- Services and characteristics are cached when disconnecting and reconnecting in the same CBCentralManager context.
- Apple has added the possibility for the iOS device to be both Central and Peripheral !
The problems I’ve seen so far is :
- First time discovery of a new device, the UUID in didDiscoverPeripheral is NULL, this makes many apps crash because they use the CFUUIDCreateString (Will write a post of how to work around this).
- Disconnection of a device via the cancelPeripheralConnection does not disconnect the device immediately.