Android Bluetooth baja energía – iBeacon

Recientemente recibí un dispositivo iBeacon con la intención de crear aplicaciones de Android que puedo reconocerlo y usarlo. Soy nuevo usando bluetooth en aplicaciones de Android y hay muchas cosas que todavía no sé. Buscando en la Internet y en este foro encontré recomendaciones para usar la Biblioteca de IBEACON de la Red de Radius Networks, pero, por desgracia, ahora ya no está disponible:

Https://github.com/RadiusNetworks/android-ibeacon-service

Así que empecé usando el código que aparece en la guía de desarrolladores de Android acerca de Bluetooth Low Energy: https://developer.android.com/guide/topics/connectivity/bluetooth-le.html

Usando este código puedo detectar el dispositivo, incluso conectar con él, pero no sé cómo obtener la proximidad Uuid y los valores mayor y menor: la aplicación muestra una gran cantidad de Uuids de servicios y características del dispositivo, pero ninguno Es el Uuid de Proximidad del dispositivo.

¿Alguien podría decirme cómo obtener esos datos usando la API de Bluetooth LE de Android o ayudarme a obtener la librería Android iBeacon de Radius Networks para Eclipse y una guía para usarla o una muestra que muestre cómo usarla?

Gracias.

EDIT / UPDATE:
Se pone mejor .. AltBeacon !
Compruebe las especificaciones de AltBeacon

AltBeacon aporta una mayor transparencia a lo que transmite un faro y cómo estos datos pueden ser utilizados por Android, Windows y otros dispositivos.


Por qué la Biblioteca iBeacon de Android de RadiusNetworks ya no está disponible:

Los vendedores han comenzado a cumplir con las directrices establecidas por Apple y, como resultado, se han visto obligados a "limpiar" sus productos de cualquier referencia o conexión entre dispositivos Android y su detección de protocolos iBeacon.

Leer más: Apple analiza el iBeacon para Android
Creo que la mejor apuesta parece ser de alguien que lo ha estado usando, ya lo tiene, puede compartirlo con usted, como desde compromisos anteriores, no puede obtener todos los componentes – biblioteca, muestra, servicio

También: Una nota del CEO para Android iBeacon Lib, RadiusNetworks

Ahora, llegando a Proximity UUID y mayores , menores :
No he encontrado una manera directa de obtenerlo, en términos de un parámetro, aunque usted puede echar un vistazo a leer mayor, menor, uuid de beacons en android y SensorTag usando iBeacon Technology . En este último, hay una indicación de mayor, menor, uuid después de iBeacon Service, sin embargo TI instrumentos podría ser la restricción.

En android, como un identificador .. puede recuperar la device address del device address por device.getAddress() del beacon / para cada BluetoothDevice device; .

Los dos siguientes son cosas totalmente diferentes, aunque ambos se llaman UUID.

  • UUIDs de los servicios GATT que están alojados en un dispositivo periférico BLE.
  • Proximidad UUID de iBeacon.

Lo que debe saber acerca de "UUIDs of GATT services":

  1. Los dispositivos periféricos BLE pueden implementar un servidor GATT.
  2. Un servidor GATT aloja los servicios del GATT.
  3. Lo que la API "android.bluetooth.BluetoothGatt.getServices ()" devuelve es una lista de servicios GATT (List <BluetoothGattService>).
  4. BluetoothGattService.getUuid () devuelve el ID del servicio.

Lo que debe saber sobre "Proximity UUID de iBeacon":

  1. Los dispositivos periféricos BLE difunden paquetes publicitarios.
  2. La parte de carga útil de un paquete publicitario contiene una lista de estructuras AD.
  3. Una estructura AD consiste en (1) Longitud (1 byte), (2) Tipo AD (1 byte) y (3) Datos AD. El formato de la estructura de AD se describe en "11 FORMATO DE DATOS DE RESPUESTA DE PUBLICIDAD Y DE ESCANEADO" de "Especificación de núcleo Bluetooth 4.2".
  4. IBeacon es una especie de estructuras AD.
  5. AD El tipo de iBeacon es 0xFF (que significa datos específicos del fabricante).
  6. Los primeros 4 bytes de datos de AD de iBeacon son 0x4C, 0x00, 0x02 y 0x15. Los primeros 2 bytes (0x4C, 0x00) significan "Apple, Inc." Y los siguientes 2 bytes (0x02, 0x15) significan "formato iBeacon".
  7. Proximidad UUID (16 bytes), número principal (2 bytes en big endian), número menor (2 bytes en big endian) y potencia (1 byte) siguen los primeros 4 bytes.

Por lo tanto, lo que tiene que hacer para obtener información iBeacon (Proximity UUID, mayor, menor, potencia) son los siguientes.

  1. Analice una carga útil de paquetes publicitarios como una lista de estructuras AD.
  2. Para cada estructura AD, compruebe si AD Type es 0xFF y los primeros 4 bytes de AD Data son 0x4C, 0x00, 0x02 y 0x15.
  3. Cuando se satisfacen las condiciones de 2., analizar los bytes restantes como UUID de proximidad, número principal, número menor y potencia.

Si utiliza nv-bluetooth , puede extraer iBeacon de un paquete de publicidad como el siguiente:

 public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) { // Parse the payload of the advertising packet. List<ADStructure> structures = ADPayloadParser.getInstance().parse(scanRecord); // For each AD structure contained in the advertising packet. for (ADStructure structure : structures) { if (structure instanceof IBeacon) { // iBeacon was found. IBeacon iBeacon = (IBeacon)structure; // Proximity UUID, major number, minor number and power. UUID uuid = iBeacon.getUUID(); int major = iBeacon.getMajor(); int minor = iBeacon.getMinor(); int power = iBeacon.getPower(); ........ 

Consulte " iBeacon como una especie de estructuras AD " para obtener más detalles.

RadiusNetworks ha "re-lanzado" las bibliotecas y los ejemplos en conjunto con una nueva especificación de proximidad de baliza de plataforma cruzada.

Nuevo estándar de AltBeacon permite aplicaciones de proximidad entre plataformas

Echa un vistazo a altbeacon.org .

  • AltBeacon onBeaconServiceConnect no se llama
  • Estimación de la seguridad de la baliza
  • ¿Por qué isMultipleAdvertisementSupported () devuelve false, cuando getBluetoothLeAdvertiser devuelve un objeto?
  • IBeacons - Compañía (Estimate, Gimbal, etc.) SDKs contra la biblioteca de Android / iOS
  • ¿Cómo agregar más de un faro en una sola región?
  • Cómo identificar Eddystone URL y uid?
  • Combine iBeacon bluetooth de baja energía con Android 4.3
  • Cómo obtener balizas visibles desde el método RegionBootstrap AltBeacon
  • ¿Cómo obtener respuestas más rápidas con AltBeacon?
  • Cómo obtener el Id único de un Beacon usando Estimate SDK en Android
  • ¿Qué es exactamente txPower para Bluetooth LE y cómo se utiliza?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.