gpt4 book ai didi

android - 如何在android BLE中写入 “0xFF”作为特征值?

转载 作者:行者123 更新时间:2023-12-02 20:54:58 25 4
gpt4 key购买 nike

我正在尝试使用BluetoothGattCharacteristic方法setValue(..)在香水分配器设备中写入十六进制值0xFF。我在回调方法onCharacteristicWrite()中确实得到成功状态代码0,但设备不执行任何操作,理想情况下它应该散发出香味。

下面是我编写特征的示例代码

private void writeCharacteristic(CallbackContext callbackContext, UUID serviceUUID, UUID characteristicUUID, byte[] data, int writeType) {

boolean success = false;

if (gatt == null) {
callbackContext.error("BluetoothGatt is null");
return;
}
BluetoothGattService service = gatt.getService(serviceUUID);
BluetoothGattCharacteristic characteristic = findWritableCharacteristic(service, characteristicUUID, writeType);
if (characteristic == null) {
callbackContext.error("Characteristic " + characteristicUUID + " not found.");
} else {
int data2=0xFF;
characteristic.setValue(data2, BluetoothGattCharacteristic.FORMAT_UINT16, 0);
characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);
writeCallback = callbackContext;
if (gatt.writeCharacteristic(characteristic)) {
success = true;
System.out.println(" writeCharacteristic success");
} else {
writeCallback = null;
callbackContext.error("Write failed");
}
}

请建议在BluetoothGattCharacteristic的setValue()方法中写入十六进制数据的方法。

谢谢

最佳答案

0xFFBluetoothGattCharacteristic.FORMAT_UINT16 表示您将发送 FF 00,因为您将其设置为发送 16 位无符号数字。要仅发送 0xFF(我不知道这是否有区别),您必须将格式设置为 UINT8

characteristic.setValue(data2, BluetoothGattCharacteristic.FORMAT_UINT8, 0);

关于android - 如何在android BLE中写入 “0xFF”作为特征值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33797458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com