iOS: aplicación de fondo Bluetooth LE

0

Sufro severamente de que iOS (supuestamente) esté matando mis aplicaciones todo el tiempo, aunque no las mato de forma intencional. También se enumeran en el administrador de tareas (doble toque en la página principal).

Esto es especialmente malo para al menos dos de mis aplicaciones:

  1. Acceso móvil HID (sistema de entrada sin llave)
  2. Noke (bloqueo de teclado Bluetooth)

Para el primero, todo lo que debe hacerse es sacudir el teléfono. Entonces el lector de tarjetas debe activar y abrir la puerta. Para este último, solo se debe empujar el grillete del candado y se debe desbloquear automáticamente si el teléfono está cerca (es decir, en mi bolsillo).

AMBOS casi nunca funcionan, haciéndolos casi inútiles (si necesito buscar en mi bolso para encontrar el teléfono, también puedo buscar la llave o la tarjeta RFID).

Ambos funcionan cuando inicio la aplicación manualmente (y poco después) pero luego vuelvo a fallar aleatoriamente después de algún tiempo.

Ambas aplicaciones tienen una opción de actualización de la aplicación en segundo plano que he activado.

Los desarrolladores de las aplicaciones afirman que esto sería una limitación de iOS y que la funcionalidad no funcionaría. Me gustaría negrita para anunciar una funcionalidad que ni siquiera funciona ...

¿No debería la actualización de la aplicación en segundo plano permitir exactamente esto ... mantener ese tipo de cosas funcionando?

También tengo un Apple Watch y nunca experimenté problemas o pérdida de comunicación.

¿Cómo funciona la actualización de la aplicación en segundo plano exactamente para Bluetooth LE? ¿Hay alguna función para probar un dispositivo Bluetooth LE en segundo plano?

¿Los desarrolladores de estas aplicaciones solo están inventando excusas?

(Tile es otra aplicación Bluetooth LE con los mismos problemas. Sin embargo, aquí no me importa demasiado)

    
pregunta divB 08.08.2017 - 07:22

1 respuesta

1

De hecho, es un desafío lograr que esa funcionalidad funcione de manera confiable, ya que iOS tiene un mecanismo de ahorro de energía muy conservador y los desarrolladores no lo están inventando.

El problema es: si bien en realidad hay una forma de que las aplicaciones usen Bluetooth LE mientras se encuentra en segundo plano, es muy limitado. Normalmente, para conectarse a un dispositivo BLE como Noke, la aplicación necesita escanear para el dispositivo que anuncia tiene presencia. Solo después de recibir un escaneo, la aplicación puede conectarse al dispositivo. Un dispositivo emite un escaneo utilizando los servicios del sistema iOS y registra un callback , lo que significa que el sistema operativo "llama" / "activa" la aplicación si se encuentra un dispositivo que fue escaneado.

Al buscar un dispositivo, hay varios parámetros que pueden ajustarse que afectan la intensidad de la energía, pero también la latencia al interactuar con BLE. En gerneal, necesita equilibrar estos parámetros para la mejor experiencia. En primer plano, el escaneo y la conexión a dispositivos es muy rápido en iOS, pero en segundo plano, iOS ignora algunas opciones que los desarrolladores pueden configurar pero, ante todo, reduce la frecuencia del escaneo, lo que reduce considerablemente el uso de energía, pero también introduce mucha latencia. . iOS también decide cuándo emitir la devolución de llamada a la aplicación descrita anteriormente.

Hice el descubrimiento de que el ahorro de energía en iOS 11.1 es mucho más agresivo que en iOS 10. ¿Se está utilizando iOS 11 cuando se producen esos problemas?

Fuente: enlace

    
respondido por el Benjamin Geese 01.11.2017 - 17:27

Lea otras preguntas en las etiquetas