Notes on Apple Core Bluetooth Peripheral ID


  • The only peripheral ID that Core Bluetooth API offers after discovery is CBPeripheral.identifier.
  • Not MAC address.
    You can’t get MAC address via Core Bluetooth. There is no public API for this. If this is an internal or jailbreak application you can get the value of the kLockdownBluetoothAddressKey key via liblockdown.dylib.
  • It’s obtained via callback function didDiscoverPeripheral. (iPhone acts as central device)
  • Type is NSUUID, not CBUUID. UUID is deprecated as of iOS 7.0.
  • identifier has been moved to CBPeer class, which is base class of CBPeripheral. So net effect is the same.
  • A different central will return a different id for the same peripheral.
  • A central will return the same id for a peripheral. Thus, it can be stored and used later per Apple doc.
    However, I don’t know how long it will return the same id.
    Important: assuming the peripheral doesn’t use Bluetooth 4.0 Privacy feature, which changes its ID periodically.
  • Peripheral MAC & central id (& possible time) is used (by Core Bluetooth) in generating this CBPeripheral.identifier.
Advertisements
Notes on Apple Core Bluetooth Peripheral ID

One thought on “Notes on Apple Core Bluetooth Peripheral ID

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s