Here is a roundabout way you may be able to obtain more information about the connecting device. Of course, as you will see, this is far from a straightforward solution, and your mileage may vary.
The identifier you get from the CBCentral object is the key.
This UUID identifies a device defined internally in the Bluetooth Stack. While the CBCentral object does not expose any other properties, the stack may contain more information at that time.
So the trick is going to be, once you have this UUID, you can try to get some properties that may be exposed, had it been a peripheral. At that point you can create a CBCentralManager, and then try accessing the same device using the retrievePeripherals(withIdentifiers:) function.
That device will be exposed to CBCentralManager as a CBPeripheral, with more properties, and some could be identifying, like a name. You can use the appropriate properties from there to decide whether this is the device you want to connect originally.
As for the need for continual pairing: for a pairing to be remembered, the paired devices will need to create a bond. iOS is supposed to do this automatically, but it could be that the connecting device is not setting the bonding flag in the security request or pairing response correctly.
Argun Tekant /
DTS Engineer /
Core Technologies