Android Ble, lettura e scrittura caratteristiche
-
20-12-2019 - |
Domanda
Attualmente sto sviluppando Android Ble e incontra un sacco di problemi con gli stack BLE Android ..
Il mio strumento di sviluppo è Samsung Galaxy J con Android 4.3.
Voglio sapere come posso leggere una caratteristica da BLE e la scrittura delle caratteristiche (è come Verificare quali dati che ho ricevuto, e poi mando un altro dato usando il BLE)
E ho un problema serio capire come funziona i callback Android Ble, Non capisco queste 5 funzioni ... e il manuale non è chiaro, qualcuno può spiegare la buona anima in forma semplice ???
onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite
.
La mia situazione attuale è, sono riuscito a leggere i dati in oncharacracracracracracracracracracracracracracracracracracracracterCackChanged () e quindi ho verificato i dati ricevuti i dati che provo a inviare i dati utilizzando
characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)
.
Ma, la pila BLE Android non sta chiamando oncharatteristicswrite () e infatti, Android si blocca lì ..
Provo a Google su Android Ble, non ci sono molte informazioni e solo un mazzo di lamentarsi su quanto è instabile le pile BLE ......
Soluzione
ciascuna delle callback dell'Android Ble ha le sue funzioni;
OnDescriptRoad e OnDescriptorWrite
Questo è utilizzato per scrivere / leggere le impostazioni di configurazione per il dispositivo BLE, alcuni produttori potrebbero richiedere di inviare alcuni dati al dispositivo BLE e riconoscerlo leggendo, prima di poter collegare al dispositivo BLE
oncharacracterickwrite
Viene utilizzato per inviare dati al dispositivo BLE, in genere in modalità dati per il dispositivo BLE. Questa callback viene chiamata quando digiti
gatt.writeCharacteristic(characteristics);
.
oncharacteristiclead
Questo è usato per leggere i dati dal dispositivo BLE La callback viene chiamata quando si scrive questo codice
gatt.readCharacteristic(characteristics);
.
oncharacracteristiccanged
Questo callback viene chiamato quando si sta tentando di inviare dati utilizzando WriteCharacteristic (caratteristiche) e il dispositivo BLE risponde con un valore.
Di solito un dispositivo BLE ha alcune caratteristiche, per renderlo semplice, nome qualche caratteristica
- .
- scrivi - scrittura caratteristiche
- Leggi - Leggi Caratteristiche
Per chiarire, quando si inviano dati, è necessario utilizzare le caratteristiche Scrivi e quindi quando il dispositivo BLE risponde Android app chiamerà Leggi Caratteristiche Un punto molto importante da notare è Android Ble Stack consente di scrivere le caratteristiche solo una sola tempo !!
Esempio: se si tenta di chiamare le caratteristiche di scrittura due volte allo stesso tempo
gatt.writeCharacteristic(characteristics);
gatt.writeCharacteristic(characteristics);
.
Lo stack BLE Android non emetterà le 2a caratteristiche di scrittura!
Altri suggerimenti
Prima di setValue:characteristics.setValue(data)
è necessario utilizzare gatt.setCharacteristicNotification(Char,true)
in setNotification
.