studio - Android BLE, características de lectura y escritura.
bluetooth low energy android example (2)
Actualmente estoy desarrollando Android BLE y tengo muchos problemas con las pilas de Android BLE.
Mi herramienta de desarrollo es Samsung Galaxy J con Android 4.3.
Quiero saber cómo puedo leer las características del BLE y escribirlas (es como que verifico qué datos he recibido y luego envío otros datos utilizando el BLE)
y tengo un serio problema para entender cómo funcionan las devoluciones de llamada de Android BLE, no entiendo estas 5 funciones ... y el manual no está claro, ¿alguien de bien puede explicar de forma sencilla?
onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite
Mi situación actual es que logré leer los datos en la devolución de llamada onCharacteristicChanged () y luego verifiqué los datos recibidos. Intento enviar los datos utilizando
characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)
Pero, la pila de BLE de Android no llama a CaracterísticaEscribe () y, de hecho, Android simplemente cuelga allí.
Intento buscar en Google sobre Android BLE, no hay mucha información y solo un montón de quejas sobre cuán inestables son las pilas BLE ......
Antes de setValue:characteristics.setValue(data)
debe usar gatt.setCharacteristicNotification(Char,true)
para setNotification
.
Cada una de las devoluciones de llamada del BLE de Android tiene sus funciones;
onDescriptorRead y onDescriptorWrite
Esto se usa para escribir / leer los ajustes de configuración para el dispositivo BLE, algunos fabricantes pueden requerir enviar algunos datos al dispositivo BLE y reconocerlos mediante la lectura, antes de poder conectarse al dispositivo BLE.
en CaracterísticaEscriba
Esto se utiliza para enviar datos al dispositivo BLE, generalmente en modo de datos para el dispositivo BLE. Esta llamada se llama cuando escribes
gatt.writeCharacteristic(characteristics);
enCaracterísticaLeer
Esto se usa para leer datos del dispositivo BLE. Se llama a la devolución de llamada cuando escribe este código
gatt.readCharacteristic(characteristics);
onCharacteristicChanged
Se llama a esta devolución de llamada cuando intenta enviar datos utilizando writeCharacteristic (características) y el dispositivo BLE responde con algún valor.
Por lo general, un dispositivo BLE tiene pocas características, para simplificarlo, nombro algunas características
- ESCRIBIR - escribir características
- LEER - leer caracteristicas
Para que quede claro, cuando envíe datos, deberá usar las características de ESCRITURA y luego, cuando el dispositivo BLE responda, la aplicación de Android llamará las características de LEER
Un punto muy importante a tener en cuenta es que la pila BLE de Android le permite escribir características una por vez.
Ejemplo: SI intenta llamar a las características de escritura dos veces al mismo tiempo
gatt.writeCharacteristic(characteristics);
gatt.writeCharacteristic(characteristics);
La pila BLE de Android no emitirá las características de escritura 2!