Darrin,
You won’t need to do a full pairing with PIN entry if it is only for private address resolving.
YesNo pairing can be initiated by registering as a device without display / button and works with the iPhone.
You will not be able to encrypt the channel, but can store the pairing information on the accessory for
associating a new address with the old identity.
This key still works for address resolving after BT off / on, unpair from the phone, phone reboot and even secure erase.
This means that you should not link the BT info to a specific identity - as it won’t change when the phone changes its owner.
If you still are not able to perform this initial Yes/No pairing, you could either connect to the phone and implement
a custom identity variable that contains the app-manufacturer-specific device UUID.
Or use Davids approach.
Note however, that using custom advertisement data works only properly in foreground mode, though.
When your app is in background, the local name may change, and the serviceUUIDs may be moved to an invisible area.
Also, I’m not sure if apple likes when you abuse the serviceUUIDs key for unintended purposes.
BTW:
I have never seen the iPhone change already after 15 mins - it often requires a reboot to happen,
or a significantly longer time to change addresses.
Maybe there are other workarounds like tracking of the RSSI and then mapping it to the new BD_ADDR (with a similar RSSI) when the address changes.
Or abusing the ANCS by injecting a custom hidden message in it that’s unique to a single device.
Have not experimented yet with the ANCS so not sure what’s possible with it :)
I would suggest that you provide us with the concrete use case, so we can discuss a solution that’s more tailored to your needs.
The only way I can think of is if the iOS Device advertised a serviceUUID or Local Name that was unique to only itself.
In CBPeripheralManager, the only advertising data that you are allowed to set are.
1. CBAvertisementDataLocalNameKey
2. CBAdvertisementDataServiceUUIDsKey
You could discovery the device and read the advertisingData dictionary without connecting to the device.
Dave
On Nov 19, 2013, at 1:24 PM, William Henderson < email@hidden> wrote:
You can’t. You’ll need to connect and implement your own identification scheme.
--
William
Sent from my iPhone
On Monday, November 18, 2013 at 9:22 PM, Darrin Massena wrote:
An iOS device used as a Bluetooth LE peripheral changes its identifier every 15 mins or so. Scanning Centrals rediscover it and think it is a new peripheral. Without pairing with the peripheral, how can a Central recognize that this is the same peripheral
it has previously connected to?
Thanks,
Darrin
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Help/Unsubscribe/Update your Subscription:
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
|