onCharacteristicwrite中的Android Ble状态码14

时间:2018-03-13 11:13:11

标签: android bluetooth-lowenergy

我正在使用BLE开发一个应用程序,我必须向外围设备发送一些命令才能获得响应。写特征代码如下:

    public void writeCustomCharacteristic(String value) {
        this.value = "";
        if (mBluetoothAdapter == null || mBluetoothGatt == null) {
            Log.w(TAG, "BluetoothAdapter not initialized");
            return;
        }
        /*check if the service is available on the device*/
        BluetoothGattService mCustomService = mBluetoothGatt.getService(SERVICE_UUID);
        if (mCustomService == null) {
            Log.w(TAG, "Custom BLE Service not found");
            return;
        }

        /*get the read characteristic from the service*/
        BluetoothGattCharacteristic mWriteCharacteristic = mCustomService.getCharacteristic(CHARACTERSTICS_UUID);
        mWriteCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);
        mWriteCharacteristic.setValue(value.getBytes());


        if (!mBluetoothGatt.writeCharacteristic(mWriteCharacteristic)) {
            Log.w(TAG, "Failed to write characteristic");
        }
    }

写完特征后,我在下面的方法得到了回复,它返回状态代码14,官方文档中也没有提到:

public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
        System.out.println("BluetoothLeService.onCharacteristicWrite");

        System.out.println(BluetoothGatt.GATT_SUCCESS + " :status: " + status);            

    }

1 个答案:

答案 0 :(得分:2)

状态码14可能表示ATT错误代码14,在蓝牙核心规范v5.0,第3卷,第F部分,第3.4.1.1节表3.3中定义。

此错误代码是从远程设备发送的,因此它很可能在Android端没有错误。 ATT中的错误代码14表示"不太可能错误"。您需要调查远程设备发送此错误代码的原因。