iBeacons – Company (Estimote, Gimbal, etc.) SDK vs biblioteca de Android / iOS

He estado jugando con Estimote iBeacons con su Android SDK. Sin embargo, todavía estoy confundido acerca de por qué hay tantos SDK disponibles.

Los iBeacons son solo dispositivos Bluetooth estándar que tienen la parte Bluetooth Low Energy (BLE) de la especificación Bluetooth 4.0. Mientras tenga un dispositivo que sea "Bluetooth Smart Ready" (iPhone 4S + y Android 4.3+), podrá detectar todos los iBeacons, independientemente del fabricante de la baliza. Android ( Bluetooth Low Energy Connectivity ) y iPhone ( iOS Developer Library ) proporcionan una biblioteca de nivel de sistema para desarrollar una aplicación para usar iBeacons.

Entonces, ¿por qué hay tantos SDK para conectarse a iBeacons (Gimbal, Estimote, Radius Networks, API de Android de código abierto ).

Entonces tengo algunas preguntas:

  • ¿Por qué hay tantos SDK disponibles? ¿Pueden los fabricantes bloquear sus balizas para que sean accesibles solo a través de su SDK?

  • ¿Puede la biblioteca de conectividad Bluetooth 4.3 de Android hacer sondeos y encontrar cualquier iBeacon?

  • ¿Cuáles son las ventajas de usar un SDK que no sea Android? Me parece que la geofencing y la detección de proximidad son posibles solo con la biblioteca de Android, pero la notificación y el sondeo constante de background no son posibles.

Entienda que las balizas son una aplicación específica de Bluetooth LE. Bluetooth LE es una tecnología de comunicación de corto scope de uso general que puede hacer muchas cosas como transmitir audio a un altavoz.

Las API de bajo nivel como las API de Bluetooth incorporadas de Android y las API CoreBluetooth de Apple están diseñadas para aplicaciones de bluetooth de propósito general. No hacen cosas específicas de balizas como:

  • deencoding de identificadores de balizas
  • estimando la distancia a las balizas
  • determinar cuándo aparecen y desaparecen las balizas
  • iniciar aplicaciones o enviar notifications sobre la detección de balizas

Con el fin de lograr estas cosas, o necesita escribir su propio software (que es propenso a errores y consume mucho time), o utilizar una biblioteca de nivel superior pre-construido. Para los dispositivos con iOS, Apple tiene capacidades de beacon incorporadas al sistema operativo con las API de CoreLocation . Android no tiene dicha biblioteca incorporada.

Como Android no tiene una biblioteca de balizas incorporada, los han creado diferentes terceros. Mi compañía hizo la primera en septiembre de 2013, que se ha convertido en la biblioteca de Android Beacon Library de hoy en día.

Otras compañías que venden balizas a menudo hacen sus propias bibliotecas (algunas se basan en esta biblioteca de código abierto, y otras no) para admitir características propias de sus balizas o services de nube propietarios que se basan en ellas.

Entonces las respuestas a tus últimas dos preguntas son:

  • Sí, la biblioteca de conectividad Bluetooth 4.3 de Android puede sondear y encontrar cualquier iBeacon, pero tendrá que escribir mucho código encima de esa biblioteca para que ocurra.

  • La ventaja de usar una biblioteca adicional es que no tiene que escribir y depurar todo ese código. Puede centrarse en la lógica que necesita para ingresar a su aplicación y no gastar todo su time en el procesamiento de balizas de bajo nivel.

Divulgación completa: Soy Ingeniero Jefe en Radius Networks y el autor de la Biblioteca Android Beacon.