Problema de tiempo de fondo para la aplicación Bluetooth LE para Iphone 4s

Estoy usando el framework core-bluetooth para mi aplicación en Iphone-4s.
Normalmente, esto tiene que ser una aplicación en segundo plano que puede ejecutarse el mayor tiempo posible.

Ahora solo se ejecuta durante 40 min - 1 hora max.

Estoy esperando por al menos 1 día más o menos.

Para este valor "bluetooth-central" se agrega en la clave "Modos de fondo requeridos" en el archivo .plist.

Parece que mi aplicación va a "suspender" el modo, al final. ya que cuando abro la aplicación de nuevo (de fondo al estado en primer plano) está enviando la notificación nuevamente, esto significa que la conexión Bluetooth todavía está conectada y el dispositivo BLE sigue enviando la notificación. Si presiono el botón de inicio y la aplicación pasa a segundo plano, NO vuelve a recibir notificación.

¿Alguien puede decirme por qué mi aplicación vive en modo de fondo solo por un máximo de 1 hora? Debe continuar ejecutándose como una aplicación de música normal en segundo plano para siempre.

¿Apple dice algo específico sobre qué condición tiene una aplicación en segundo plano (que es una de esas aplicaciones de fondo en ejecución continua que cae en las 5 categorías) que falla y que pasará al modo de suspensión?

Haciendo referenciaiPhoneAppProgrammingGuide", en "Communicating with a Bluetooth Accessory"En la sección", llego a saber que, para una larga ejecución en segundo plano, las implementaciones de la aplicación de Bluetooth LE 2 son necesarias:

1) La clave UIBackgroundModes debe ser "bluetooth-central" enInfo.plist expediente. 2) Cualquier aplicación que admita el procesamiento en segundo plano de los datos de Bluetooth debe estar basada en la sesión.

Así que para mi aplicación, se incorporó la implementación FIRST, y con esa aplicación se puede ejecutar en segundo plano y realizar todas las tareas por un máximo de 1 hora de duración.

Ahora necesito implementar la segunda implementación. es decir, basado en la sesión. Lo que permitirá obtener los eventos incluso si la aplicación está en estado de "suspensión" según la documentación. Traté de encontrar para crear una sesión adecuada específica para Bluetooth LE (Core Bluetooth framework) como la "EASession"presente para Classic Bluetooth (marco de accesorios externos). Pero no lo encontré.

Básicamente, no estoy seguro de qué clase de sesión necesito usar para el propósito de BLE. Para audio / video, redes e internet, accesorios externos, hay clases de sesión individuales disponibles. No hay ninguno para el framework Core Bluetooth.

¿Podría alguien ayudarme con qué clase de sesión es adecuada para BLE?

Respuestas a la pregunta(1)

Su respuesta a la pregunta