Question

I'm trying to create an iBeacon with CBPeripheralManager (so it can run in the background).

Tried to discover the CBService and CBCharacteristics of both Estimotes beacons and an iPad acting as an iBeacon (CBBeacon) but with little luck so far.

I wonder if someone has already done this or faced such a scenario. I would really appreciate it a lot If someone has already discovered CBPeripheral - CBService - CBCharacteristic structure.

Thanks a lot in advance!

Was it helpful?

Solution

The iBeacon profile is different to the GATT profile that is supported by CoreBluetooth, so you cannot build an iBeacon advertisement using CoreBluetooth.

For information on the iBeacon profile refer to this answer - What is the iBeacon Bluetooth Profile

OTHER TIPS

I've actually tried this (using a custom iBeacon advertisement data based on this article), but sad to say it didn't work. I've come to the conclusion that iOS seems to somehow know what an iBeacon advertisement looks like even when not using a CLBeaconRegion object and it won't allow it to run in the background even as a peripheral using Core Bluetooth.

EDIT:

To add more regarding your attempt to discover Services and Characteristics on your Estimote, perhaps have a look at this answer. Long story short, if you use an app like LightBlue to discover the services on an Estimote, the ServiceUUID and the ProximityUUID are completely different. Estimote seems to use GATT for Connectivity Mode and iBeacons for Advertising mode. You can read more about Estimote's different modes here.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top