当Android设备尝试与一个使用BLE(低功耗蓝牙)的外部设备进行首次连接时,有时会出现“双‘配对请求’对话框/弹窗 - 导致首次连接失败”的问题。这是由于Android系统的自动配对请求弹窗在首次连接时可能会干扰BLE连接的过程。
为了解决这个问题,您可以通过以下方法来避免自动配对请求弹窗的干扰:
BluetoothGattCallback
回调函数中,覆盖onConnectionStateChange()
方法。在该方法中,通过以下代码禁用自动配对请求弹窗:@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
super.onConnectionStateChange(gatt, status, newState);
if (newState == BluetoothProfile.STATE_CONNECTED) {
// 取消自动配对请求弹窗
gatt.getDevice().setPairingConfirmation(false);
}
}
BluetoothGattCallback
回调函数中的onServicesDiscovered()
方法中,通过以下代码继续连接过程:@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
super.onServicesDiscovered(gatt, status);
if (status == BluetoothGatt.GATT_SUCCESS) {
// 连接成功,继续后续操作
}
}
通过这些修改,您可以禁用Android的自动配对请求弹窗,并确保BLE连接的顺利进行。