Android BLE, leer y escribir características

Actualmente estoy desarrollando BLE Android, y encuentro 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 escribir las características (es como i verificar qué datos he recibido, y luego enviar otros datos utilizando el BLE)

Y tengo problemas serios de entender cómo funcionan las devoluciones de BLE de Android, no entiendo estas 5 funciones … y el manual no está claro, ¿Alguien buen alma puede explicar en forma simple ???

onCharacteristicWrite onCharacteristicRead onCharacteristicChanged onDescriptorRead onDescriptorWrite 

Mi situación actual es, me las arreglé para leer los datos en onCharacteristicChanged () de devolución de llamada y luego verifiqué el recibido los datos que intento enviar los datos usando

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

Pero, la pila BLE de Android no está llamando onCharacteristicsWrite () y de hecho, Android sólo cuelga allí ..

Trato de google sobre Android BLE, no hay mucha información y sólo un montón de quejas sobre lo inestable de las pilas BLE es ……

Cada una de las devoluciones de llamada desde el Android BLE tiene sus funciones;

OnDescriptorRead y onDescriptorWrite

Esto se utiliza para escribir / leer los ajustes de configuración para el dispositivo BLE, algunos fabricantes pueden requerir enviar algunos datos al dispositivo BLE y reconocerlos leyendo, antes de que pueda conectarse al dispositivo BLE

OnCharacteristicWrite

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

 gatt.writeCharacteristic(characteristics); 

OnCharacteristicRead

Se utiliza para leer datos del dispositivo BLE. La llamada de retorno se llama cuando se escribe este código

 gatt.readCharacteristic(characteristics); 

OnCharacteristicChanged

Esta llamada de llamada se llama cuando está intentando enviar datos usando writeCharacteristic (características) y el dispositivo BLE responde con algún valor.

Por lo general, un dispositivo BLE tiene pocas características, para hacerlo simple, nombro algunas características

  • ESCRIBIR – escribe las características
  • Leer – leer Características

Para dejarlo en claro, al enviar datos, necesitará usar las características de WRITE y cuando el dispositivo BLE responda, la aplicación de Android llamará a las características READ

Un punto muy importante a tener en cuenta es Android BLE pila le permite escribir las características de una en 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 de Android no emitirá las características de escritura 2ª!

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

  • Datos de indicación BLE de Android 4.4 más de 20 bytes
  • Bluetooth GATT onConnectionState El cambio no funciona en Lollipop
  • Cómo aumentar el período de exploración para dispositivos BLE en Android?
  • No se puede leer la característica. Android BLE
  • Nodificación de la señal de la señal de Bluetooth
  • ¿Cómo mejorar el rendimiento de GATT de baja energía de Bluetooth de Android?
  • Medición de la frecuencia cardíaca usando Xiaomi MiBand y BLE
  • Android AOSP - Definición de intervalo de exploración y escanear ventana en código fuente android
  • Lea las notificaciones cuando toque el botón en el dispositivo BLE
  • Android BLE no puede recibir Gatt Notificación característica del dispositivo
  • Intervalo de tiempo de conexión BLE de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.