0

哪一个是实际确认callBack,它表示数据已成功从Android Phone传递到远程BLE设备? onCharacteristicWrite() or onCharacteristicChanged()或其他东西。 我写的数据是BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE.在Android BLE中使用哪种回调来确保向远程BLE设备成功发送消息?

+0

onCharacteristicWrite()将在成功交付时被调用。 –

+0

@UsmanRana我已经看到了一些实例,gettign这个回调并不总是意味着远程设备已经获得了Gatt层的数据。我还读了这些writeRequests在Android BLE堆栈缓冲区中排队,并且在发送数据时到远程设备的空气会将此回叫调用回来。您是否有任何官方资料来证明您的声明? – Raulp

+0

onCharacteristicChanged()在启用通知时调用,因此无论何时在特征中检测到任何更改时都会触发。当您在设备上写入数据包并且设备响应确认时,会专门调用onCharacteristicWrite()。检查文档: https://developer.android.com/reference/android/bluetooth/BluetoothGattCallback.html –

回答

0

当您使用BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE时,根本没有确认成功发送。当你得到onCharacteristicWrite回调函数时,它只意味着数据包已被缓冲,而蓝牙堆栈有空间接受另一个数据包。

+0

你好埃米尔是否记录在某处officialy? – Raulp

+0

像往常一样使用Android的蓝牙文档:没有 – Emil