Hello!
I am developing an application which is connecting to an nRF52 board using the Android-BLE-Library implemented by Nordic
The application is doing the following:
- Perform an LE scan using Google's recommended Android stock class, which is BluetoothLeScanner, to scan for the board -> as a result the nRF52 board is found by the BluetoothLeScanner
- The app is sending a connect request to the nRF52 board -> as a result it successfully connects
- Then the application performs a write with response request to a characterisc which require bonding - in my case I am performing a write request to enable the indications on a secure characteristic
- Since it is a secure writing, and the board is requesting bonding, the Android framework will automaticaly initiate the bonding - no code required on the Android app side to perform the bond -> as a result the bond succedes and then I get the write response back that the write completed successfully
- I check the bonded devices list in the Android Bluetooth setting screen and the nRF52 board is listed
- I reboot the phone. When the phone is rebooted I check again the Bluetooth settings screen and the nRF board is still listed
The FW team did the following changes in one monolithic commit, on the FW side:
- in prj.conf file the following line was added: CONFIG_BT_PRIVACY=y
- for the secure characteristics, in the BT_GATT_CHARACTERISTIC(...) the 3rd parameter was changed from BT_GATT_PERM_WRITE_AUTHEN into BT_GATT_PERM_WRITE_ENCRYPT for writing and from BT_GATT_PERM_READ_AUTHEN into BT_GATT_PERM_READ_ENCRYPT for reading
- the initial two steps bonding with numerical confirmation was changed into one step just-works bonding
- and some othere changes which I couldn't figure out what those means
Now it comes the problem. After these changes all the steps above where successfull except step 6 - after rebooting, the device was not listed anymore in the bonded devices list in Bluetooth settings screen. So before rebooting the device was listed, after rebooting the device was automatically unbonded.
Is it possible that any of the changes the FW team did could lead to this behaviour?
Is it possible that I am doing something wrong on the app side?
Thank you!