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 ......

È stato utile?

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.

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