Android Bluetooth LE拔出设备写入成功(更快的断开连接方法?)
我正在创建一个连接到蓝牙LE设备的应用程序。一切正常,但如果设备拔下插头,应用程序需要10-15秒才能发送状态广播。如果我在拔下设备后尝试写入,我仍然认为在我的蓝牙GattCallback中这是GATT_的成功 如果用户试图在BLE设备上更改某些内容,但写入失败2-3次,然后显示断开连接的屏幕(或断开连接,以便用户获得更快的反馈),我将使用该选项,但这似乎不起作用。是否有更快的方法检查BLE设备是否不再可见Android Bluetooth LE拔出设备写入成功(更快的断开连接方法?),android,bluetooth,bluetooth-lowenergy,Android,Bluetooth,Bluetooth Lowenergy,我正在创建一个连接到蓝牙LE设备的应用程序。一切正常,但如果设备拔下插头,应用程序需要10-15秒才能发送状态广播。如果我在拔下设备后尝试写入,我仍然认为在我的蓝牙GattCallback中这是GATT_的成功 如果用户试图在BLE设备上更改某些内容,但写入失败2-3次,然后显示断开连接的屏幕(或断开连接,以便用户获得更快的反馈),我将使用该选项,但这似乎不起作用。是否有更快的方法检查BLE设备是否不再可见 @Override public void onCharacteristicWr
@Override
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status)
{
if (status == BluetoothGatt.GATT_SUCCESS)
{
// Is true even if the device has been unplugged?
Log.i(TAG, "onCharacteristicWrite Success!");
} else {
Log.i(TAG, "onCharacteristicWrite Failed!");
}
}
我在为客户端应用程序工作时遇到了类似的问题。即使在断开连接10-15秒后,应用程序仍会显示它已连接到Ble设备。应用程序不知道设备已断开连接,但仍试图保持连接打开,一段时间后会超时。幸运的是,我们的Ble设备在应用程序每次写入后都会做出响应。因此,即使WriteCharcetSeristc说写操作成功,我仍将等待Ble设备告诉我它成功接收了我的写操作,从而解决了我的问题。如果您可以更改固件代码,我建议您采用相同的方法。您使用的是?如果onCharacteristicWrite获得了写入响应,那么它实际上只应该以成功状态调用onCharacteristicWrite。请您接受建议,这似乎是唯一可能的方法。