Qual è il metodo corretto per leggere una caratteristica GATT in Android?
-
21-12-2019 - |
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.
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.