Ways to identify BLE devices

So it seems a pretty common scenario is to have multiple BLE devices that are otherwise identical except for a serial number/ID, and to want to pair to a specific one. From my understanding, there are a couple of options for where to structure this ID: 1) in the MAC address of the device, 2) in the scan response after advertising, 3) in an unencrypted characteristic, 4) in an encrypted characteristic, 5) relying completely on the peripheral UUID assigned by iOS.


1) is impossible on iOS because of the MAC address switching/obfuscation. 4) after iOS 9 forces bonding, so that means if the user is in a room with 5 devices, the user might have to manually unpair 4 of them in the phone's Settings - probably a poor UX. With 5), after a software update/a couple weeks, the relationship between the peripheral and the phone will be in a weird limbo where the app thinks it knows the peripheral's UUID but in reality it's lost forever. There's also no way to concretely identify which device you're connecting to initially with 5).


That just leaves 2) and 3). Is that correct? Is there a standardized preference for one over the other?


Furthermore, can we guarantee that putting the device's ID in an unencrypted characteristic will not force bonding?

iPhone 7, iOS 15

Posted on Sep 26, 2023 7:28 AM

Reply
1 reply

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Ways to identify BLE devices

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.