2013-09-04 3 views
2

Я пытаюсь получить атомное время для приложения для Android. Я использую http://hi-android.info/src/android/net/SntpClient.java.html как NTP-клиент и следующий код для реализации NTP (= образец кода из SntpClient.java):Android: получите атомное время

SntpClient client = new SntpClient(); 
if (client.requestTime("time.foo.com")) { 
    long now = client.getNtpTime() + SystemClock.elapsedRealtime() - client.getNtpTimeReference(); 
} 

Я попробовал другой сервер из этого списка: http://mindprod.com/jgloss/timesources.html, но «client.requestTime ("SERVER")»всегда "ложь" ...

Мой код:

SntpClient client = new SntpClient(); 
if (client.requestTime("hera.limescope.net", 10000)) { 
    long now = client.getNtpTime() + SystemClock.elapsedRealtime() - client.getNtpTimeReference(); 
    textAtomicClock.setText(String.valueOf(now)); 
} 

Что я делаю неправильно?

Freddi

+0

Вы сказали, что попробовали несколько серверов, но в качестве примечания тот, который у вас есть, не имеет правильно настроенного DNS. Попробуйте '0.debian.pool.ntp.org', и вы должны получить рабочий. – Qben

+0

Это просто пример. Я нахожусь в Германии, поэтому я попробовал каждый сервер DE ... – Freddi

+0

Я просто попробовал случайное число (не так много) из списка, и никто не ответил на порт 123. В любом случае это был просто комментарий. :) – Qben

ответ

0

Нашли ошибку? Я не знал, что мне пришлось обработать задачу ntp в фоновом режиме ... Я решил проблему с функцией Androids AsyncTask. Спасибо всем, кто мне помог!

+0

, пожалуйста, поделитесь своим кодом! – statosdotcom