Domanda

Nel tentativo di leggere il valore di una caratteristica GATT Bluetooth Low-Energy nell'API 18 di Android, mi sono imbattuto nel seguente dilemma:Qual è il modo corretto per recuperare il valore memorizzato in una caratteristica?E a quale livello dello stack dovrebbe avvenire questa azione?

Nel condurre la mia ricerca, mi sono imbattuto in quelli che capisco siano due metodi possibili:

  • BluetoothGatt.readCaratteristica(Caratteristica BluetoothGattCaratteristica)
  • BluetoothGattCaratteristica.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);
    }
    

Sopra è riportato il codice originale che mi ha portato a questo problema.In esso, provo a leggere il valore di una caratteristica e ne cambio semplicemente lo stato utilizzando un pulsante.

È stato utile?

Soluzione

BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic characteristic)

Questa funzione aggiorna il tuo oggetto BluetoothGattCharacteristic (sul tuo dispositivo Android) utilizzando il valore caratteristico del Bluetooth.

BluetoothGattCharacteristic.getValue()

Questa funzione è solo una funzione getter dell'oggetto BluetoothGattCharacteristic.Non esiste alcuna transazione tra Android e il dispositivo Bluetooth.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top