6

Is there a way to uniquely identify a BTLE device (something like hardware ID)? I have 2 hardware BTLE devices and 2 soft BTLE devices (using CBCentralManager). All these devices are sending same UUID.

I want to identify the exact BTLE device when all the devices are lying near me. Any clue?

Abhinav
  • 37,684
  • 43
  • 191
  • 309
  • It will be interesting to see answers to this. I am using a BTLE as a 'Serial Port Cable Replacement' for a device. Once I established that a device is sending my UUID in centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral ... I then connect to it and send it a virtual serial port command to find out its device id (a variable we sent in that machine's microcontroller). I then match the CBPeripheral uuid that iOS assigned the device with our device id. – David Rinck Jul 03 '13 at 02:19
  • See this: http://stackoverflow.com/questions/12524871/corebluetooth-how-to-get-a-unique-uuid – novis Feb 17 '14 at 17:10

1 Answers1

2

The devices should have unique Bluetooth addresses. If they don't then you wouldn't be able to properly connect to them without them interfering with each other. However, with BTLE it's possible for a device to have a randomized address for privacy (but those conform to a particular pattern so you can detect if you get that kind of address). The address is 6 bytes and is usually displayed in hex (ex A1-B2-C3-D4-E5-F6). The first 2 bytes usually indicate the manufacturer.

UPDATE: My answer is valid for most BLE usage, but as the question is tagged you may want to look at this other answer about getting a unique id on ios as a possible way to get the bluetooth address

Community
  • 1
  • 1
Tim Tisdall
  • 9,914
  • 3
  • 52
  • 82
  • 2
    More importantly for the question asked here is that although BTLE devices should have (generally) unique addresses, iOS refuses to reveal this information to application programs, instead hiding it behind temporary identifiers assigned by the phone which have no known mapping to actual properties of the devices they represent. – Chris Stratton Mar 17 '14 at 20:48
  • The first *3 bytes* usually indicates the manufacturer (of the device or the chip) if it is a public address, but the address can also be random (static or private) – calandoa Mar 26 '15 at 16:16