This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What is the Role of WHITLISTING in ANCS?

Hi, I am using "nrf5 sdk v11.0" example "ble_ancs_c" for nrf52_DK(PCA10040) . when i connect to the nrf_device from ios device i am able to pair and connect to ancs client . But when i do foget device from connected ios device i received the ble disconnected event also i am not able to connect to other device and the other ios device .When i disable BLE_ADV_WHITELIST i am able to connect to other device but still when i do forget device along with ANCS server the BLE connetcion is also terminated

I Need to understand the role of WHITELISTING in ANCS

Thanks, Krishna

  • The whitelist is used to filter Connection requests (and/or scan requests) from central devices. It will use the IRK of the iOS device to check if the address of the initator (connecting device) matches the IRK of a known device (The whitelist can also use static addresses for peers that has this, iOS uses a resolvable private address). The whitelist is populated from the peer managers peer database. As long as there is bond information in the peer database the whielist will be populated. It is possible to disable the whitelist using Button 2 long push (see bsp button assignments).

    Note that if you delete the bond information (forget device) in iOS, you should also do so on the peripheral device in order to create a new bond.

  • Thanks for reply run_ar, As you mentioned "if you delete the bond information (forget device) in iOS, you should also do so on the peripheral device in order to create a new bond." but when ever i did forget device i directly received the ble disconnected event .But i believe that there must be some other event called when i do forget device ,if it is then which event will be triggered? ,that event is the event triggered in device manager or softdevice ble event? and can i write my own handler for that?

  • Unfortunately the peripheral doesn't get a notification from iOS if a the bond is deleted. So when a user chooses to forget a device on iOS, he/she will also have to manually delete the bond on the peer. Note that it could be possible to replace the old bond info on the periperal when iOS tries to bond again, based on the device address. But I would not recommend that as it would be a huge security hole in your application. i.e. any device could copy a device address and use that to replace the old bond...

Related