2012-08-17 10 views
13

En iOS, necesito saber la hora real (UTC), no la hora del dispositivo. En otras palabras, no debería ser posible que el usuario altere la hora o la fecha.¿Hay alguna manera de determinar la hora y la fecha reales en iOS (no en el momento del dispositivo)

Cualquier cosa que requiera una conexión de red no es buena (por lo que acceder a un servidor horario no es una opción).

yo sepa, hay 2 formas teóricas de lograr esto:

  • Use la marca de tiempo de la señal de satélite GPS
  • Obtener la hora actual de la portadora

El problema es que esta información no está expuesto por ninguna API en iOS.

¿Hay alguna otra manera?

+0

Sólo por curiosidad ¿por qué es este tiempo precisa tan importante para su proyecto? Si no te importa que pregunte. –

+0

Registro de tiempo. Debe ser a prueba de manipulaciones. –

+0

No importa qué opción encuentre, si el teléfono tiene jailbreak, todas las apuestas estarán desactivadas. –

Respuesta

1

Puede echar un vistazo a secondsFromGMTForDate: y secondsFromGMT en NSTimeZone. Si el desplazamiento GMT aumenta/disminuye cuando se cambia la hora del dispositivo, estos proporcionan una forma de corregir sus marcas de tiempo a GMT (y probablemente se conviertan a UTC).

+1

Esa API todavía usa el reloj del dispositivo (según lo establecido por el usuario). No proporciona una forma de determinar la hora UTC real. –

2

La mayoría de las soluciones que pueda encontrar (como obtener datos de GPS de CoreLocation para acceder a la información de tiempo) son defectuosas porque dependen del dispositivo real para acceder a la hora. Tendrá que conectarse a un servidor horario (le sugiero que compruebe si hay servidor NTP). Estaba mirando el marco central de telefonía y no pude encontrar nada que proporcionara tiempo a la red. Es posible que desee completar un informe de error y solicitar Apple para expandir una de las clases para incluir la hora.

0

No se puede llegar a los datos brutos GPS y la propiedad de la marca de tiempo en CLLocation locationManager:didUpdateLocations: se establece con el reloj del sistema

Cuestiones relacionadas