son sirve segundo qué que plano para mantener las apple app actualizar actualización actualizaciones actualizacion actividad ios accelerometer core-location core-motion

ios - qué - para que sirve actualizacion en segundo plano iphone



Actualizaciones continuas del acelerómetro en segundo plano en iOS (1)

Teniendo en cuenta que esto se solicitó hace 3 años, intentaré dar una respuesta aplicable a 2017. Si está utilizando Swift, le sugeriría encarecidamente que use este marco https://github.com/MHaroonBaig/MotionKit .

Hace que sea muy trivial utilizar los servicios CoreMotion. Probablemente haya otro envoltorio amigable para los servicios de Core Location.

Encontré otra pregunta de SO que parece haber respondido utilizando su enfoque de secuestro de servicios de ubicación para mantenerse activo en segundo plano.

Ejecutar la aplicación durante más de 10 minutos en segundo plano

Esperemos que esto ayude. Solo dejaré una advertencia: el uso de los servicios de ubicación para obtener datos continuos del acelerómetro en segundo plano sin que realmente necesite los servicios de ubicación probablemente será motivo para que su aplicación sea rechazada de la tienda de aplicaciones. Las aplicaciones de navegación realmente utilizan tanto la ubicación como los datos del acelerómetro. La respuesta simple sería agregar una función que realmente use la ubicación para justificar la obtención de los datos del acelerómetro en segundo plano. De todos modos, la mejor de las suertes.

He investigado este tema a fondo antes de formular la pregunta, pero debo asegurarme de que he llegado a las conclusiones correctas y, de ser así, me gustaría recibir ayuda para implementar esto de la manera más eficiente posible.

Es esencial para mi aplicación recibir actualizaciones del acelerómetro cada 5 segundos aproximadamente y puede ser más rápido en ciertas situaciones; Sin esta característica, no es una aplicación muy útil.

Entonces, ¿cómo hacer para lograr esto? La estrategia básica es utilizar el método:

[cmMotionManager startDeviceMotionUpdatesToQueue:...]

con un deviceMotionUpdateInterval apropiado y luego, de alguna manera, "asegurarse" de que su aplicación nunca se suspenda, es decir. tiene que implementar uno de los modos de fondo (por ejemplo, Ubicación, Audio de fondo, VOIP, etc.)

Esta es la estrategia utilizada por muchas aplicaciones que ya están en la tienda de aplicaciones, como Sleep Cycle ("grabación de sonido"), Nike + y Pacer (reproducción de sonido).

(Corríjame si hay otra manera de obtener continuamente información del acelerómetro)

Mi problema es que mi aplicación no grabará sonido, no necesitará VOIP, etc. y no requiere ninguna de las nuevas API de recuperación remota / notificación de fondo en iOS 7. Entonces, ¿cómo puedo asegurarme de que permanezco activo en el ¿fondo?

Bueno, ya que estoy diseñando una aplicación que mide el movimiento, no es muy difícil recibir información de ubicación. Mi pregunta es cómo implementar las actualizaciones de ubicación de la manera más eficiente posible, dado que realmente no necesito estas actualizaciones de ubicación mientras me aseguro de que mi aplicación nunca se suspenda.

Esto es lo que tengo en este momento en mi delegado de aplicación:

self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; - (void)applicationWillResignActive:(UIApplication *)application { [self.locationManager startUpdatingLocation]; } - (void)applicationWillEnterForeground:(UIApplication *)application { [self.locationManager stopUpdatingLocation]; }

Me he dado cuenta de que, a veces, poco después de presionar el botón de inicio de mi aplicación, mi aplicación se suspende, probablemente cuando Core Location intenta obtener una solución de ubicación para enviar a la aplicación.

También me gustaría saber, una vez que una actualización de ubicación te ha despertado, ¿cuánto tiempo tienes antes de que el sistema te suspenda nuevamente si no llega una nueva actualización de ubicación? ¿Tendré que intentar y recibir actualizaciones continuas de ubicación (estilo de navegación) para garantizar que nunca me suspendan?

¡Por favor ayuda!

Gracias