我正在尝试写一个BLE设备的特性。根据文档,该特性能够读写,具有不同的用法。我已经成功阅读了它,但我在写一些问题。每次我尝试写入时,onWriteCharacterstic函数都会以状态代码6到达,该代码应为GATT_REQUEST_NOT_SUPPORTED。
我不确定是什么导致它。我向我的应用添加了所有必要的蓝牙权限,文档声明它能够写入。
我的代码看起来有点像(简化):
@Override
public void onServicesDiscovered( BluetoothGatt gatt, int status ){
if( status == BluetoothGatt.GATT_SUCCESS ){
mGatt = gatt;
mService= gatt.getService(UUID_SERVICE);
mChar = mService.getCharacteristic(UUID_CHAR);
byte[] value = {...}
mChar.setValue(value);
boolean retval = mGatt.writeCharacteristic(mChar); //retval is true
}
}
@Override
public void onCharacteristicWrite (BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status)
{
... //status here is 6
}
我还使用函数getProperties()和getPermissions()来检查特性。 getPermissions()函数返回0,我无法与android文档中的任何内容匹配,而getProperties()返回10,这也很奇怪。对于属性,它意味着它支持通知,但它不支持。
答案 0 :(得分:1)
好像这是手机的问题。在它的蓝牙关闭几个小时后,它正常工作。