Search code examples
iphonebeaconeddystonegoogle-beacon-platform

Can I make iPhone/iPad broadcast as Eddystone Beacon?


We can make iOS devices act as a iBeacon transmitter and We can locate nearby iBeacons if we know their Proximity UUID.

With Google's Proximity Beacon API, It's possible to configure and register real Beacon hardware, and we can locate them with Nearby Messaging API.

But is it possible to make iOS devices to broadcast as Eddystone Beacons ? And it needs to be discoverable by apps that scan Eddystone beacons.

Thanks in advance.


Solution

  • Unfortunately, this is not possible. While iOS devices can advertise Bluetooth LE service advertisements(which are the advertisement type used by Eddystone) using CoreBluetooth APIs, you cannot attach the necessary data. This is because the CBAdvertisementDataServiceDataKey that associates service data to an advertisement is read-only on iOS. You can't set the data.

    So while you want to make the iOS device advertise something like this to transmit Eddystone-UID:

    0201060303aafe1516aafe00e72f234454f4911ba9ffa6000000000001

    You end up advertising something like this:

    0201060303aafe0316aafe

    This leaves off the Eddystone-UID type code (00), the calibrated power (e7), the namespace identifier (2f234454f4911ba9ffa6) and the instance identifier (000000000001). As a result, it won't be recognized as an Eddystone-UID frame.