我正在制作一款与BLE设备连接的Android应用。我几乎已经完成了我的APP,这是最后一个BUG。
当我连接新设备并且它要求我输入PIN时,如果我输入错误,它就会冻结。 我已经查看了其他与蓝牙配合使用的Android应用程序,但它们似乎也没有解决这个问题。
例如Zentri - BLE Commander,它只是有一个弹出窗口,表示你必须使用Android设置进行配对。
另一个:谷歌示例应用程序(https://github.com/googlesamples/android-BluetoothLeGatt),它并没有像我的那样冻结,但它没有弹出任何东西,就像没有发生任何事情一样。
甚至可以检测到用户输入了错误的配对PIN码?如果是的话,请帮帮我。
编辑: 感谢Michael。我解决了我之前遇到的问题。
int state =(bluetoothDevice.getBondState());
while (state == 11) {
// 11 = BOND_BONDING
// Stay's here while it tries to bond.
state = bluetoothDevice.getBondState();
}
if(state == 10) {
// 10 = BOND_NONE
// If it failed to bond
}
if(state == 12) {
// 12 = BOND_BONDED
// If it bonded
}
效果很好。当用户点击屏幕时,它会进入后台,我的应用程序仍在等待状态改变。用户必须等待大约20秒,然后应用再次激活。