API "TrueTime-Android" иногда возвращает неправильные дату и время? - PullRequest
0 голосов
/ 11 апреля 2019

Я получил API TrueTime-android версии 1.7 от https://github.com/instacart/truetime-android.

Работает нормально.Но иногда это дает

  1. неправильная дата-время

или

пустая дата-время?

Являются ли эти исключения исключениями, специфичными для устройства или версией Android или чем-то еще?

1 Ответ

2 голосов
/ 11 апреля 2019

Во-первых, инициализируйте истинное время с хостом и временем ожидания соединения следующим образом:

public static void init(final Context context) {
    (new Thread(new Runnable() {
        public void run() {
            try {
                TrueTime.build().withNtpHost("time.google.com").withLoggingEnabled(false).withSharedPreferencesCache(context).withConnectionTimeout(31428).initialize();
            } catch (IOException var2) {
                var2.printStackTrace();
            }

        }
    })).start();
}

Вызовите этот метод для получения текущего времени:

public static long getCurrentTrueTime() {
    Date trueDate = null;
    if (TrueTime.isInitialized()) {
        trueDate = TrueTime.now();
    }

    return trueDate != null ? trueDate.getTime() : System.currentTimeMillis();
}

Аналогично, вызовите этот метод для получения истинного времени:

public static Long getTrueTime() {
    Date trueDate = null;
    if (TrueTime.isInitialized()) {
        trueDate = TrueTime.now();
    }

    return trueDate != null ? trueDate.getTime() : null;
}

Версия API:

api 'com.github.instacart.truetime-android:library:3.4'
...