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

2 Solutions collect form web for “Android BLE, leer y escribir características”

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 .

  • Lea las notificaciones cuando toque el botón en el dispositivo BLE
  • ¿Cómo solucionar el error de BLE SCAN_FAILED_APPLICATION_REGISTRATION_FAILED de Android?
  • Android 4.3: BLE: Comportamiento de filtrado de startLeScan ()
  • ¿Qué camino es mejor para volver a conectar el dispositivo BLE? ¿Usar `autoConnect = true` o realizar una exploración repetitiva?
  • Android: El escáner Bluetooth Low Energy recibe datos nulos
  • Android Wear BLE Función central
  • Lista de dispositivos BLE para Android después de escanear dispositivos
  • Diferencia entre close () y disconnect () en Android Bluetooth API?
  • Combine iBeacon bluetooth de baja energía con Android 4.3
  • ¿Cuáles son los pasos para ser notificado por el dispositivo Bluetooth Low Energy (BLE)?
  • "El recurso compartido Bluetooth ha dejado de funcionar" al realizar LeScan
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.