tutorial que programming microlocalización how example eddystone beacons beacon android ios7 bluetooth-lowenergy ibeacon ibeacon-android

android - programming - ibeacon que es



Combina iBeacon bluetooth low energy con Android 4.3 (3)

Estoy buscando una forma de detectar iBeacon (función iOS 7.0) desde un dispositivo Android. Leí la documentación de Android, donde parece que el iBeacon es una especie de servidor del GATT que envía su posición. Mientras que la documentación de Android dice que no debería sondear esa información, pero para la detección sería necesario.

Busco mucho en Google, pero este tema es bastante nuevo (incluso creé un nuevo tag ibeacon ), así que estaría contento si obtengo algunos enlaces a los recursos del mundo de iOS que describen la implementación. Además, si hay algunas librerías de Android que no encontré aún, sería bueno.


No entiendo exactamente lo que quieres decir, ¿podrías proporcionar enlaces a la documentación que dice que no debes sondear los datos?

Pero me parece que el iBeacon funciona como servidor, lo que es algo gracioso para mí. ¿No está destinado a encontrar otros dispositivos, no el teléfono en sí?

https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.position_quality.xml

Estas son las características que usa sin embargo. Para mí, parece que los dispositivos que estás buscando son los "beacons" y el teléfono en sí mismo es solo un oyente. Por lo tanto, no sondearía los datos de EHPE y EVPE, pero en realidad debería escuchar sus cambios o "transmisiones".

También soy nuevo en esto y no pude encontrar ninguna documentación realmente específica.

Sin embargo, tenga en cuenta que en el enlace que proporcioné hay un enlace de descarga en la esquina superior que le proporcionará la documentación completa en formato PDF. Allí probablemente encontrarás más respuestas.


La única pega aquí es detectar balizas incluso si la aplicación no se está ejecutando. A diferencia de iOS7, no es compatible de forma nativa. En iOS7, cuando está en su BT, lo notificará automáticamente cuando ingrese a la región de iBeacon registrada.

Implementé iBeacon en Android 4.3 API usando IntentService más AlarmManager. Para hacer un escaneo cada 30 segundos (para ahorrar energía de la batería, será más largo). Funciona bien para el usuario. Solo cuando se encuentre el uuid / major / minor correspondiente, se activarán las notificaciones. De lo contrario, dormirá y se despertará para escanear de nuevo.

Creo que esta es la solución para tu pregunta.


EDITAR: ahora se ha eliminado la siguiente biblioteca, pero una biblioteca de reemplazo ahora está disponible aquí:

https://github.com/AltBeacon/android-beacon-library

Transmití los iOS 7 iBeacon SDK a Android y pude ver las iBeacon estándar y estimar su alcance. El código está disponible aquí:

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

Para que esto funcione, necesitas Android 4.3 que introdujo las API de Low Energy Bluetooth. También necesita un dispositivo con un chipset bluetooth de baja energía.

Si no desea utilizar la biblioteca completa anterior, puede hacer la suya propia. iBeacons simplemente transmite un anuncio BLE una vez por segundo que comienza con una secuencia conocida de bytes. Simplemente tiene que decirle a Android que haga un escaneo BLE, obtenga cada anuncio y busque uno que comience con la secuencia de bytes de iBeacon conocida. A continuación, puede analizar los campos iBeacon. Aquí está el código que muestra cómo se hace esto:

https://github.com/RadiusNetworks/android-ibeacon-service/blob/master/src/com/radiusnetworks/ibeacon/IBeacon.java#L177-L231