bluetoothgatt onCharacteristicWrite返回状态代码为6 with ble device

时间:2017-07-24 12:36:32

标签: android bluetooth bluetooth-lowenergy

我正在尝试写一个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,这也很奇怪。对于属性,它意味着它支持通知,但它不支持。

1 个答案:

答案 0 :(得分:1)

好像这是手机的问题。在它的蓝牙关闭几个小时后,它正常工作。