2013-04-04 15 views
20

Jak znaleźć rzeczywisty czas geograficzny , jak w mojej aplikacji Chcę dołączyć w czasie rzeczywistym z moją aplikacją.Otrzymaj w czasie rzeczywistym - nie urządzenie Ustaw czas w Androidzie

tak, że jeśli użytkownik zmieni czas w swoim urządzeniu, a następnie powinien uzyskać tylko przy panującej prawdziwe - nie po raz URZĄDZENIE

Moje pytanie jest bardzo mylące, ale starają się zrozumieć, w prostym języku -

Nie chcę CZASU URZĄDZENIA, chcę CZAS NAJBLIŻSZY W każdej chwili

+0

Chcesz czas UTC? – penguat

+0

@penguat Chciałbym tylko wiedzieć, jaki jest czas rzeczywisty, nie czas UTC lub GMT –

+0

Czy masz na myśli lokalny czas w lokalizacji urządzenia? – penguat

Odpowiedz

3

Nie ma Androida API, aby uzyskać taki czas. Użytkownik może zawsze zmienić czas urządzenia, nic nie można z tym zrobić.

Najlepszym rozwiązaniem byłoby uruchomienie serwera z usługą internetową, z której można uzyskać czas. Ponieważ kontrolujesz serwer, możesz spróbować upewnić się, że zwraca on prawidłowy czas.

+0

Czy możemy używać biblioteki czasu Jody? –

7

Trzeba korzystać z NTP (Network Time Protocol) Protokół:

Oto kod znalazłem somewhr innego .. i używam go. to wykorzystuje bibliotekę commache.

// Lista serwerów czasu: http://tf.nist.gov/service/time-servers.html

Tutaj jest kod Java dla Ciebie

public class TimeLookup { public static final String TIME_SERVER = "time-a.nist.gov"; 

    public static void main(String[] args) throws Exception { 
     NTPUDPClient timeClient = new NTPUDPClient(); 
     InetAddress inetAddress = InetAddress.getByName(TIME_SERVER); 
     TimeInfo timeInfo = timeClient.getTime(inetAddress); 
     long returnTime = timeInfo.getReturnTime(); 
     Date time = new Date(returnTime); 
     System.out.println("Time from " + TIME_SERVER + ": " + time); 
    } 

} 
+6

Wymaga Internetu! –

+0

Link został zaktualizowany: http://tf.nist.gov/tf-cgi/servers.cgi – androidevil

+0

W moim przypadku znaleziono poprawny znacznik czasu za pomocą: timeInfo.getMessage(). GetReceiveTimeStamp(). GetTime() – androidevil

Powiązane problemy