2012-05-21 11 views
5

En la aplicación Recordatorios presentada con iOS 5, tiene la capacidad de configurar una geocerca, por lo que su recordatorio alerta cuando se acerca a una dirección. Los recordatorios basados ​​en la ubicación también se pueden configurar para un día específico. Apple es muy eficiente acerca de cómo manejan los recordatorios basados ​​en la ubicación y el tiempo, ya que no comienzan a rastrear su ubicación hasta que es el día del recordatorio.¿Cómo sabe la aplicación Reminders que solo rastrea mi ubicación el día del recordatorio?

Ejemplo:

Es lunes y configurar un recordatorio para el miércoles para recordarme cuando llego a casa a sacar la basura.

Si presta atención, observará que el indicador de servicios de ubicación (triángulo morado) junto al indicador de duración de la batería no se mostrará hasta la medianoche del miércoles.

Tengo curiosidad por saber si hay una API pública que le permita a su aplicación responder a cambios de tiempo como este o si están utilizando algunas API privadas.

que fue capaz de encontrar UIApplicationSignificantTimeChangeNotification y applicationSignificantTimeChange: pero se afirma en la documentación que

Si la aplicación está suspendida en este momento, este mensaje está en la cola hasta que vuelva su aplicación al primer plano, momento en el que es entregado.

Me hace creer que esto no funcionaría.

Mi otro pensamiento es usar UILocalNotification y configurar la notificación para el momento que le interese y cuando se active esa notificación, ejecute el código para habilitar los servicios de localización. Debido a mi falta de experiencia con UILocationNotification, sin embargo, sé si es posible ejecutar dicho código.

¿Alguien sabe cómo lograr esto?

+0

No puede hacerlo con LocalNotifications, estas notificaciones solo muestran una ventana emergente con el mensaje especificado. –

Respuesta

0

Puede establecer un notif local (notificación remota) con la información para activar el geofence el día que desea activar su función.

Esto activa su aplicación en el método "didReceiveLocalNotification" de su aplicaciónDelegate y allí coloca su código geocerca.

Cuestiones relacionadas