Каков правильный метод чтения характеристики ГАТТ в Android?

пытаясь прочитать значение характеристики Bluetooth с низким энергопотреблением GATT в Android API 18, я столкнулся со следующей дилеммой: каков правильный способ получить значение, хранящееся в характеристике? И на каком уровне стека должно происходить это действие?

проводя свои собственные исследования, я наткнулся на то, что я понимаю, это два возможных метода:

  • BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic характеристика)
  • BluetoothGattCharacteristic.getValue ()

    public void onClick(View v){        
        byteValue = mBTValueCharacteristic.getValue();
        if ((byteValue[0] & 0x01) == 1)
            byteValue[0] = 0x00;
        else
            byteValue[0] = 0x01;
    
        mBTValueCharacteristic.setValue(byteValue);
        mBTGatt.writeCharacteristic(mBTValueCharacteristic);
    }
    

выше-исходный код, который привел меня к этой проблеме. В нем я пытаюсь прочитать значение характеристики и просто переключить ее состояние с помощью кнопки.

1 ответов


BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic characteristic)

эта функция обновляет объект BluetoothGattCharacteristic (на вашем устройстве Android), используя характеристическое значение из Bluetooth .

BluetoothGattCharacteristic.getValue()

эта функция является просто функцией геттера объекта BluetoothGattCharacteristic. Нет никакой транзакции между android и устройством bluetooth.