Pregunta

Actualmente estoy desarrollando Android ble, y encuentra muchos problemas con las pilas ble de Android.

Mi herramienta de desarrollo es Samsung Galaxy J con Android 4.3.

Quiero saber cómo puedo leer las características de la BLE y la escritura de las características (es como verifico qué datos he recibido, y luego envío otros datos usando BLE)

y tengo un problema serio que entiende cómo funciona las devoluciones de llamada de Android, No entiendo estas 5 funciones ... y el manual no está claro, ¿puede alguien un buen alma explicar en forma simple?

onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite

Mi situación actual es, logré leer los datos en devolución de llamada OnCarractersChanged () y luego verifiqué los datos recibidos para enviar los datos usando

characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)

Pero, la pila Ble Android no está llamando a OnCharacteristicsWrite () y, de hecho, Android simplemente cuelga allí ...

Intento a Google sobre Android SP, no hay mucha información y solo un montón de quejas sobre qué tan inestable son las pilas BLE ......

¿Fue útil?

Solución

Cada una de las devoluciones de llamada de Android ble 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 que envíe algunos datos al dispositivo ble y lo confirmen leyendo, antes de poder conectarse al dispositivo ble.

OnCarracteristicWrite

Esto se utiliza para enviar datos al dispositivo BLE, generalmente en modo de datos para el dispositivo BLE. Esta devolución de llamada se llama cuando escribe

gatt.writeCharacteristic(characteristics);

onCharacteristicread

Esto se utiliza para leer datos del dispositivo ble La devolución de llamada se llama cuando escribe este código

gatt.readCharacteristic(characteristics);

OnCarracteristicsChanged

Esta devolución de llamada se llama cuando intenta enviar datos usando WritTecharacistic (características) y el dispositivo BLE responde con algún valor.

Generalmente un dispositivo BLE tiene pocas características, para simplificarlo, nomeome algunas características

  • escribir - Características de escritura
  • Leer - Lea las características

Para dejarlo claro, cuando envíe datos, deberá usar las características de escritura y luego, cuando el dispositivo ble responda la aplicación de Android, llame a las características >

Un punto muy importante a la nota es Android Ble Stack le permite escribir características de una sola 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 Android no emitirá las características de la segunda escritura!

Otros consejos

Antes de setValue:characteristics.setValue(data), debe usar gatt.setCharacteristicNotification(Char,true) a setNotification.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top