Exploración de fondo de iBeacon

He escrito mi propio servicio de escaneo BLE pequeño que se activa a través de una alarma cada 3-5 segundos. Se analiza durante 1,1 segundos para obtener los faros a su alrededor y luego transforma la señal RSSI en una proximidad aproximada.

Ahora estoy considerando el servicio iBeacon de Android de las redes de radio, pero me estoy preguntando cómo podría realizar la misma exploración de fondo.

Por ejemplo: Quiero que las balizas scannign para iniciar annd ejecutar en el fondo y recibir Intents en un receptor de difusión para decidir lo que hago con los beacons escaneados.

¿Hay soem ejemplos y hay una estimación de la cantidad de batería que consume?

La iBeacon Library de Radius Networks hace exactamente eso. Todo lo que tienes que hacer para ejecutarlo en segundo plano es vincular el IBeaconManager a algo con un ciclo de vida largo. Esto puede ser un objeto personalizado android.app.Application , o un servicio propio. Dado que ya ha escrito su propio servicio para su aplicación, podría enlazar fácilmente el IBeaconManager con ese servicio y permanecería activo en segundo plano mientras el servicio se ejecute. También puede utilizar su servicio para enviar intenciones de difusión si lo desea, pero para la mayoría de los casos de uso esto probablemente no sea necesario.

En cuanto al uso de la batería, la aplicación de referencia de la biblioteca tiene un ejemplo de cómo configurar el modo de fondo en la biblioteca para que las exploraciones ocurran con menos frecuencia, lo que ahorra batería. El código pertinente en esa aplicación de referencia está aquí:

  @Override protected void onPause() { super.onPause(); if (iBeaconManager.isBound(this)) iBeaconManager.setBackgroundMode(this, true); } @Override protected void onResume() { super.onResume(); if (iBeaconManager.isBound(this)) iBeaconManager.setBackgroundMode(this, false); } 

Configurar el modo de fondo a verdadero reduce las exploraciones de Bluetooth a suceder sólo una vez muy 5 minutos – algo similar a lo que hace iOS. Basado en pruebas en un Nexus 4, esto reduce el consumo total de la batería del teléfono de 95mA a 55mA (ambos de los cuales incluyen el drenaje general del sistema operativo).

Divulgación completa: Trabajo para Radius Networks y soy el autor principal de la iBeaconLibrary de Android.

  • Estimar la detección de regiones de beacons de un servicio en segundo plano
  • Android Estimote sdk no es capaz de escanear otros beacons que los estimote
  • Combine iBeacon bluetooth de baja energía con Android 4.3
  • AltBeacon onBeaconServiceConnect no se llama
  • Servicio de detector de balizas de estimación en segundo plano
  • Cómo aumentar el período de exploración para dispositivos BLE en Android?
  • Cómo obtener balizas visibles desde el método RegionBootstrap AltBeacon
  • Android Beacon Library funciona bien en un dispositivo Android 4.4, pero no en otro
  • Cómo identificar Eddystone URL y uid?
  • Estimación de la seguridad de la baliza
  • IBeacons - Compañía (Estimate, Gimbal, etc.) SDKs contra la biblioteca de Android / iOS
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.