Obsolete
Status Update
Comments
iv...@gmail.com <iv...@gmail.com> #2
Update: The system doesn't broadcast the intent BluetoothDevice.ACTION_PAIRING_REQUEST.
I tried to intercept the ACTION_PAIRING_REQUEST broadcast to input the PIN manually with BluetoothDevice.setPin(int), but whereas in Kitkat this (or the normal bonding) works correctly, in Android 5.0 this broadcast is not received by my app.
I tried to intercept the ACTION_PAIRING_REQUEST broadcast to input the PIN manually with BluetoothDevice.setPin(int), but whereas in Kitkat this (or the normal bonding) works correctly, in Android 5.0 this broadcast is not received by my app.
iv...@gmail.com <iv...@gmail.com> #3
Extra info:
The BLE chip of my device is a TI CC2540.
The pairing variant is BluetoothDevice.PAIRING_VARIANT_PIN
I attach an app that sets broadcasts receivers to show how in Android 5.0 there's no ACTION_PAIRING_REQUEST broadcast and the bond state passes directly from BONDING to BONDED. The screenshot shows the difference with KitKat when pairing the same device.
The BLE chip of my device is a TI CC2540.
The pairing variant is BluetoothDevice.PAIRING_VARIANT_PIN
I attach an app that sets broadcasts receivers to show how in Android 5.0 there's no ACTION_PAIRING_REQUEST broadcast and the bond state passes directly from BONDING to BONDED. The screenshot shows the difference with KitKat when pairing the same device.
xp...@gmail.com <xp...@gmail.com> #5
[Comment deleted]
xp...@gmail.com <xp...@gmail.com> #6
I have same problem, please send me your "ble_bond_test.apk" source code. Thanks very much!
sa...@google.com <sa...@google.com> #8
Thank you for your feedback. We assure you that we are doing our best to address the issue reported, however our product team has shifted work priority that doesn't include this issue. For now, we will be closing the issue as won't fix obsolete. If this issue currently still exists, we request that you log a new issue along with latest bug report here https://goo.gl/TbMiIO .
Description
When connecting to a BLE device that requires bonding through a PIN, the system no longer presents the dialog to input the PIN and instead broadcasts the state BONDED directly.
What I see from my app is that after calling BluetoothDevice.createBond(), the system broadcasts ACTION_BOND_STATE_CHANGED with EXTRA_BOND_STATE = BOND_BONDING and EXTRA_PREVIOUS_BOND_STATE = BOND_NONE (everything ok until now). Then, without asking for a PIN, it broadcasts ACTION_BOND_STATE_CHANGED with EXTRA_BOND_STATE = BOND_BONDED and EXTRA_PREVIOUS_BOND_STATE = BOND_BONDING.
The Bluetooth settings in the system settings also reports the bonding completed without asking for the pairing PIN.
Although the connection is successful and I can read non-encrypted characteristics, I don't receive any answers for the encrypted characteristics. I don't receive any GATT_INSUFFICIENT_AUTHENTICATION or GATT_INSUFFICIENT_ENCRYPTION errors either, simply no response.