Cómo aumentar el período de exploración para dispositivos BLE en Android?
Yo estaba tratando de implementar el programa de exploración de faros, y quiero que los servicios de BLE android se comporten de forma similar a iOS "didRangeBeacons" método, es decir, se debe llamar cada segundo. Pero en android no hay tal método. Pero en android hay "leScanCallback" método que se llama con mucha frecuencia con un período de exploración de menos de un segundo. Así que hay alguna manera que puedo implementar mi funcionalidad en el método leScanCallback y aumentar su intervalo de período de exploración de 1 segundo, por lo que se comporta de forma similar a "didRangeBeacons" de iOS método.
* También será la mala programación para explorar continuamente faro y aumentar su intervalo de exploración en android?
- Cómo obtener el Id único de un Beacon usando Estimate SDK en Android
- Exploración de BLE Beacon de Android
- ¿Cómo detectar múltiples balizas usando la biblioteca de Altbeacon android?
- Android Bluetooth baja energía - iBeacon
- ¿Funciona BluetoothLeAdvertiser en un Nexus 5 con Android 5.0?
Gracias por adelantado
- ¿Por qué isMultipleAdvertisementSupported () devuelve false, cuando getBluetoothLeAdvertiser devuelve un objeto?
- AltBeacon onBeaconServiceConnect no se llama
- ¿Cómo agregar más de un faro en una sola región?
- Problemas con el ejemplo de Kontakt.io Beacon
- IBeacons - Compañía (Estimate, Gimbal, etc.) SDKs contra la biblioteca de Android / iOS
- Estimar la detección de regiones de beacons de un servicio en segundo plano
- IBeaconGap Cordova Plugin basado en RadiusNetwork Android Library
- Android Studio - Estimate SDK - No se pudo encontrar la clase
Es importante entender que no hay soporte nativo de iBeacon en Android. El método leScanCallback
Android no es en absoluto equivalente al método didRangeBeacons
iOS.
El método leScanCallback
simplemente le da una devolución de llamada cada vez que se ve un paquete de publicidad desde un dispositivo Bluetooth (los dispositivos con el bit de conexión establecidos en el anuncio sólo reciben una devolución de llamada la primera vez que se ve su dirección MAC hasta que detiene y reinicia el escaneo). A menos que detenga y reinicie el escaneo en un temporizador, no hay período de exploración y obtendrá devoluciones de llamada a medida que lleguen los paquetes. Esto puede ser muchas veces un segundo.
Al escribir el código abierto Android iBeacon Library , tuve que construir toda la funcionalidad desde cero para hacer una didRangeBeaconsInRegion
llamada didRangeBeaconsInRegion
que era el equivalente a lo que está en iOS. Para ello, la biblioteca se detiene y reinicia el escaneado una vez por segundo y almacena la lista de todos los iBeacons que se ven en el ciclo, solo llamando a la devolución de llamada con la lista de iBeacons visibles al final del ciclo. Hay muchas otras complejidades no discutidas aquí.
El código es gratuito para que lo revises y modifiques, por lo que te animamos a hacerlo si quieres rodar tu propio.
- ¿Cómo podemos ejecutar una función javascript y obtener un valor de retorno en nuestra aplicación android?
- Android – DownloadManager / BroadcastReceiver llamado varias veces