Re: Pairing with an iOS peripheral?
Re: Pairing with an iOS peripheral?
- Subject: Re: Pairing with an iOS peripheral?
- From: Andras Kovi <email@hidden>
- Date: Wed, 08 May 2013 22:38:24 +0200
On iOS once secure pairing happened the services and characteristics are cached. This is what many developers on this list complained about recently as it hiders testing. It's interesting that the Mac doesn't behave similarly.
Though, I think your way of doing things is fine and robust. Service discovery should be pretty fast (of course depending on the number of artifacts that need to be discovered) But if you need only one service and a characteristic for identification, then it should happen fast for sure.
But this statement is based only on the info you shared. You may have requirements that invalidate your approach in which case opening a ticket with Apple seems to be a viable option. Once you figure out the situ, I would highly appreciate your feedback in order to grow the community knowledge. :)
Regards,
Andras
On 2013.05.08., at 21:40, Scott Perry <email@hidden> wrote:
> In theory (I haven't tested this, but heard it mentioned elsewhere) the UUID of the peripheral should stop rotating when it is securely paired to the central, so you can use that instead of an identifying characteristic (which could potentially leak information that can be used to track your customers).
>
> Service/characteristic caching will probably never be supported since they are dynamic in nature, even if you promise that yours aren't :)
>
> On May 8, 2013, at 10:26 AM, William Henderson <email@hidden> wrote:
>> I'm working on a Mac app that talks to an iOS app via Bluetooth LE. The Mac app acts as the central, iOS as the peripheral. Right now, when the Mac app discovers a peripheral it:
>> - connects, discovers characteristics/services
>> - reads from a certain characteristic that identifies the device
>> - decides based on the identity of that device whether or not to do more.
>>
>> This is a rather slow and error-prone way of doing things, but it is necessary because the iOS device changes peripherals periodically and (AFAIK) there is no way to tell whether a newly discovered peripheral is just a new peripheral from a known device or is coming from another device altogether. I've tried using advertisement data but CBAdvertisementDataManufacturerDataKey is apparently no longer allowed and other data is not consistently received in the peripheral discovery callback (I assume both of these are intentional to protect the user's privacy).
>>
>> What I am wondering is, does pairing with the device change this at all? In my testing so far it, pairing doesn't seem to gain anything at all – service/characteristic caching doesn't work on the Mac and it doesn't change the behavior of having to reconnect/discover every time the device changes peripherals. Am I missing anything?
>>
>> Thanks,
>> William Henderson
>>
>> _______________________________________________
>> 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
_______________________________________________
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