Exploración de BLE Beacon de Android

Bluetooth LE se agregó en Android 4.3, pero parece que no hay modo de escaneo de fondo que despertaría una aplicación una vez que se ha registrado para ser notificado a través de un BLE UUID disponible en la proximidad.

Esto exactamente parece ser posible a través de iOS7 y iBeacons API. ¿Alguien sabe si existe tal característica en Android 4.3 o si hay una buena solución para la exploración periiodically el entorno BLE para dispositivos BLE?

Http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

Estimote Details iOS 7 iBeacon Support For Its Contextual Proximity Shopping Devices

Creo que hay una solución como a continuación: Necesita implementar un servicio y crear un subproceso a while loop para llamar a mBluetoothAdapter.startLeScan (mLeScanCallback), a continuación, puede comprobar si se trigeed por dispositivo específico y más para buscar UUID específico.

Directamente desde el ejemplo de Android, puede utilizar un controlador:

 private void scanLeDevice(final boolean enable) { if (enable) { // Stops scanning after a pre-defined scan period. mHandler.postDelayed(new Runnable() { @Override public void run() { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); invalidateOptionsMenu(); } }, SCAN_PERIOD); mScanning = true; mBluetoothAdapter.startLeScan(mLeScanCallback); } else { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); } invalidateOptionsMenu(); } 

En mi experiencia es mejor crear un servicio que permanezca en funcionamiento. Importante es sólo escanear las balizas que le interesan, de lo contrario perderá una gran cantidad de mensajes de bucle de análisis de potencia de CPU.

Esta biblioteca puede ayudarte a escanear los iBeacons que te interesan: https://github.com/inthepocket/ibeacon-scanner-android

Además, cuando el escaneo no es posible (debido a Bluetooth desactivado, la ubicación desactivada, el permiso revocado), tiene que reiniciar el escaneo cada vez que se reúnen todas las condiciones necesarias, aquí necesitará oyentes de difusión.

Condiciones para poder escanear:

  • Tener un chip LE Bluetooth: cualquiera.

  • Tiene Bluetooth activado: cualquier.

  • Tenga la ubicación en: Android 6+.

  • Tener permiso de tiempo de ejecución de la ubicación: Android 6+.

  • Máximo inicio 5 escaneos en 30 segundos: Android 7+.

  • ¿Por qué isMultipleAdvertisementSupported () devuelve false, cuando getBluetoothLeAdvertiser devuelve un objeto?
  • Variaciones de rango de ibeacon de Radius Networks
  • Android Estimote sdk no es capaz de escanear otros beacons que los estimote
  • Cómo aumentar el período de exploración para dispositivos BLE en Android?
  • ¿Podemos convertir nuestro dispositivo Android en un faro?
  • Cómo obtener balizas visibles desde el método RegionBootstrap AltBeacon
  • IBeacons - Compañía (Estimate, Gimbal, etc.) SDKs contra la biblioteca de Android / iOS
  • ¿Cómo obtener respuestas más rápidas con AltBeacon?
  • ¿Cómo agregar más de un faro en una sola región?
  • Estimación de la seguridad de la baliza
  • AltBeacon onBeaconServiceConnect no se llama
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.