Android Bluetooth LE拔出设备写入成功(更快的断开连接方法?)

Android Bluetooth LE拔出设备写入成功(更快的断开连接方法?),android,bluetooth,bluetooth-lowenergy,Android,Bluetooth,Bluetooth Lowenergy,我正在创建一个连接到蓝牙LE设备的应用程序。一切正常,但如果设备拔下插头,应用程序需要10-15秒才能发送状态广播。如果我在拔下设备后尝试写入,我仍然认为在我的蓝牙GattCallback中这是GATT_的成功 如果用户试图在BLE设备上更改某些内容,但写入失败2-3次,然后显示断开连接的屏幕(或断开连接,以便用户获得更快的反馈),我将使用该选项,但这似乎不起作用。是否有更快的方法检查BLE设备是否不再可见 @Override public void onCharacteristicWr

我正在创建一个连接到蓝牙LE设备的应用程序。一切正常,但如果设备拔下插头,应用程序需要10-15秒才能发送状态广播。如果我在拔下设备后尝试写入,我仍然认为在我的蓝牙GattCallback中这是GATT_的成功

如果用户试图在BLE设备上更改某些内容,但写入失败2-3次,然后显示断开连接的屏幕(或断开连接,以便用户获得更快的反馈),我将使用该选项,但这似乎不起作用。是否有更快的方法检查BLE设备是否不再可见

@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。请您接受建议,这似乎是唯一可能的方法。