2013-01-17 19 views
47

Czy urządzenia z Androidem używają protokołu NTP do synchronizacji czasu?Czy Android używa NTP do synchronizacji czasu?

W moim Device-Settings widzę pole wyboru z następującym tekstem "synchronize with network", ale nie wiem, czy używają NTP.

Potrzebuję tego do mojej pracy licencjackiej, do której używam GPS. Aby uzyskać dokładny sygnał GPS, odbiornik powinien mieć dokładny zegar.

znalazłem ten wpis na blogu-internecie, ale nie jestem pewien, czy powiedzieć prawdę: Speeding up NTP, GPS Lock in Android

Odpowiedz

38

Wiem na temat Androida ICS, który korzysta z niestandardowej usługi o nazwie: NetworkTimeUpdateService. Ta usługa implementuje również synchronizację czasu NTP za pośrednictwem pojedynczego singletonu NtpTrustedTime.

W NtpTrustedTime domyślny serwer NTP jest wnioskowana z Androidem źródła strun System:

final Resources res = context.getResources(); 

final String defaultServer = res.getString(
           com.android.internal.R.string.config_ntpServer); 

Jeżeli czas automatycznego opcja synchronizacji w ustawieniach systemu jest sprawdzana i nie usługa czas NITZ dostępny jest wówczas czas będzie zsynchronizowane z serwerem NTP od com.android.internal.R.string.config_ntpServer.

Aby uzyskać wartość com.android.internal.R.string.config_ntpServer można wykorzystać następujące metody:

final Resources res = this.getResources(); 
    final int id = Resources.getSystem().getIdentifier(
         "config_ntpServer", "string","android"); 
    final String defaultServer = res.getString(id); 
+13

Co ciekawe, wygląda na to, że zakodowała je na ** 2.android.pool.ntp.org **. Linia 820: https://android.googlesource.com/platform/frameworks/base/+/40caf8f4432acd2b9d9230b2b1371660521415c2/core/res/values/config.xml#802 –

+0

Tak, ale to jest tylko dla Androida. Niektórzy producenci zmieniają ciąg serwera. – Dyonisos

+4

Uwagi: 1) Jeśli chcesz zmienić serwer NTP, Android sprawdza tylko wartość config_ntpServer podczas uruchamiania, więc musisz ponownie uruchomić (lub ponownie uruchomić usługę NetworkTimeUpdateService), aby użyć nowej wartości. 2) Od 2012 roku Android sprawdza czas tylko raz na 10 dni po uruchomieniu. (Jest łatka w gerrit, aby przywrócić pierwotny limit czasu 1 dnia) 3) Sztuczka, która sprawi, że Android sprawdzi godzinę, to wyłączyć Settings.Global.AUTO_TIME, a następnie z powrotem. Jest to odpowiednik pola wyboru w sekcji Data i godzina pliku Settings.app.4) Android nie korzysta z NTP, bardzo rzadko korzysta z SNTP. – Harvey

10

Chciałem zapytać, czy urządzenia z Androidem korzysta z protokołu czasu sieciowego (NTP), aby zsynchronizować czas.

Do ogólnej synchronizacji czasu, urządzenia z funkcją telefoniczną, w której dostawca usług bezprzewodowych zapewnia NITZ information, będą korzystać z NITZ. Rozumiem, że NTP jest używany w innych okolicznościach: dostawcy NITZ-free, Wi-Fi itp.

Twój cytowany post na blogu sugeruje inną okoliczność: synchronizację czasu na żądanie w celu obsługi GPS. Jest to z pewnością możliwe, choć nie wiem, czy jest ono używane, czy nie.

9

Mam Samsung Galaxy Tab 2 7.0 z Androidem 4.1.1. Najwyraźniej NIE synchronizuje się z NTP. Załadowałem aplikację, która mówi, że mój tablet ma 20 sekund wolnego od ntp, ale nie może go ustawić, dopóki nie wyodrębnię urządzenia.

+1

Wydaje się być tylko aktualizacją ręczną ... Mój zyskuje 1,5 minuty na 6 miesięcy. –

+1

Zakładka 2 ma system operacyjny Android 4.2.2 i nie ma pola wyboru wspomnianego przez @Harvey w swoim komentarzu do zaakceptowanej odpowiedzi. Mój dryfuje w tył w czasie. Będę musiał spróbować zsynchronizować GPS, gdy następnym razem nie będę mógł zeskanować. –

5

Brak dokładnej odpowiedzi na Twoje pytanie, ale trochę informacji: jeśli twoje urządzenie ma używać NTP na czas (np. Jeśli jest to tablet bez funkcji 3G lub GPS), serwer można skonfigurować w /system/etc/gps.conf - oczywiście plik ten można edytować tylko z uprawnieniami administratora, ale można go wyświetlać na urządzeniach nierootowanych.

+0

OK, plik jest obecny i dostępny na karcie Samsung Galaxy S. Czy wiesz, w jaki sposób mogę włączyć wbudowany protokół NTP? – user2284570

+1

@ user2284570 Myślę, że niektóre z powyższych odpowiedzi dadzą ci więcej informacji niż mogłem w tym momencie – toryan