我正在尝试writeCharacteristic()
使用 BLE 设备。
我使用谷歌示例应用程序建立连接,连接很好。我可以看到 BLE 服务和服务特征。
该writeCharacteristic()
方法返回 true 并且onCharacteristicWrite()
回调返回状态BluetoothGatt.GATT_SUCCESS
,但设备没有发生任何事情:我尝试了堆栈溢出中的所有解决方案,但没有任何帮助。这是我的代码:
在BluetoothLeService
类中,我有sendData()
方法,byte[]
由于最大有效负载为 33 个字节,因此我将分别发送每个命令。
public void sendData(byte[] data) {
String lService = "71387664-eb78-11e6-b006-92361f002671";
String lCharacteristic = "71387663-eb78-11e6-b006-92361f002671";
BluetoothGattService mBluetoothLeService = null;
BluetoothGattCharacteristic mBluetoothGattCharacteristic = null;
if (mBluetoothGattCharacteristic == null) {
mBluetoothGattCharacteristic = mBluetoothGatt.getService(UUID.fromString(lService)).getCharacteristic(UUID.fromString(lCharacteristic));
}
mBluetoothGattCharacteristic.setValue(data);
boolean write = mBluetoothGatt.writeCharacteristic(mBluetoothGattCharacteristic);
}