Java Android中使用自定义服务BLE的读/写特性

Java Android中使用自定义服务BLE的读/写特性,java,android,bluetooth-lowenergy,Java,Android,Bluetooth Lowenergy,我正在尝试使用BLE将温度计连接到android设备。我正在使用Gatt特性规范和服务获得适当的结果。但是我从这个设备上得到了一个定制服务 定制服务(UUID=00001523-1212-EFDE-1523-785FEABCD123) 自定义特征(UUID=00001524-1212-EFDE-1523-785FEABCD123)[在智能手机应用程序中标记为写入/指示/通知) 描述符(UUID=00002902-0000-1000-8000-00805F9B34FB标记为在智能手机应用程序中读取

我正在尝试使用BLE将温度计连接到android设备。我正在使用Gatt特性规范和服务获得适当的结果。但是我从这个设备上得到了一个定制服务

定制服务(
UUID=00001523-1212-EFDE-1523-785FEABCD123

自定义特征(
UUID=00001524-1212-EFDE-1523-785FEABCD123
)[在智能手机应用程序中标记为
写入/指示/通知

描述符(
UUID=00002902-0000-1000-8000-00805F9B34FB
标记为在智能手机应用程序中读取)

并列出几个8字节的命令发送到仪表,等待仪表发出8字节的响应

命令使用以下格式的帧发送:

[0x51 0x26 0x00 0x00 0x00 0x00 0xA3 CHK-SUM]
其中校验和是1..7字节的总和

但是如何发送这个命令呢

 byte[] buffer = new byte[8];
                     

    req_frame[0] = (byte) 0x51;
    req_frame[1] = (byte) 0x26;
    req_frame[2] = (byte) 0x00;
    req_frame[3] = (byte) 0x00;
    req_frame[4] = (byte) 0x00;
    req_frame[5] = (byte) 0x00;
    req_frame[6] = (byte) 0xA3;
    req_frame[7] = (byte) 0xE6;
                        characteristic.setValue(buffer);
                        characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);
                        peripheral.writeCharacteristic(characteristic, buffer, BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);

OnCharacteristicWrite给出响应成功。但未调用onCharacteristicChanged


如何使用这种类型的协议?

您好,Rushita,我尝试从BLE设备读取字符串,但读取失败。您能帮助我解决问题吗?您好,Rushita,我尝试从BLE设备读取字符串,但读取失败。您能帮我解决问题吗。