We're trying to use multiple nRF52833 devices with a single BLE Central (Android tablet) where the devices remain disconnected most of the time, and report back to the central through manufacturer-specific data in their advertisements. From time to time, the Android tablet may connect to specific devices to send commands - it disconnects again afterward.
These devices are using softdevice S140 and nRF SDK v16.0.
We'd like to restrict the centrals that may connect to each device, and I think that means using a whitelist. So far, Android is able to connect and bond when there is an empty whitelist, or when advertising without one. We're following the example here.
Once the whitelist is populated though, Android won't connect to the peripheral anymore, even though its address and IRK are in the whitelist. Symptoms are similar to this post, both in the nRF Connect app and our custom UI. The only difference is that we're not using a hardcoded address; peer information is retrieved from the peer manager.
It's almost as if Android sees that no discoverable flags are set in advertisements, and refuses to even try to connect. It instead returns the enigmatic "Error 133".
Is this the correct way to achieve this goal? The only other option I can see is to not use a whitelist and instead disconnect any centrals that are not bonded when they connect.
Thank you!