Zewnętrzne wykrywanie czasu

Od Androida 12 Android może opcjonalnie korzystać z zewnętrznego źródła czasu sugerującego czasy uniksowe time_detector. To nie jest domyślnie włączone w AOSP.

Zewnętrzne źródło czasu umożliwia producentom urządzeń pełne podanie niestandardowe sugestie godzin na Androida. Po otrzymywanie sugestii z zewnętrznego źródła czasu, usługi time_detector określa, czy zaktualizować zegar systemowy przy użyciu skonfigurowanego regułami określania priorytetów.

Implementacja

Aby zapewnić obsługę zewnętrznego wykrywania czasu, producenci urządzeń muszą wdrożyć komponent przesyłający zewnętrzne sugestie dotyczące terminu do time_detector za pomocą systemowego wywołania interfejsu API.

Aby skonfigurować źródło zewnętrzne, użyj: core/res/res/values/config.xml plik konfiguracji serwera systemowego. Dodaj wartość external do config_autoTimeSourcesPriority

W tym przykładzie Android ma przekazywać zewnętrzne sugestie dotyczące czasu o najwyższym priorytecie przy ustawianiu zegara systemowego. Jeśli nie ma prawidłowego identyfikatora dostępna sugerowana godzina, a następnie używana jest następne miejsce odjazdu (w tym przypadku gnss).

<string-array name="config_autoTimeSourcesPriority">
        <item>external</item>
        <item>gnss</item>
</string-array>

Aby udostępnić systemowi zewnętrzne sugestie dotyczące czasu, użyj funkcji suggestExternalTime() w metodzie TimeManager. Jeśli źródło zewnętrzne jest skonfigurowane za pomocą config_autoTimeSourcesPriority w pliku konfiguracji i nie wyżej są dostępne sugestie dotyczące priorytetu, Android korzysta z sygnatura czasowa przekazana do tej metody w celu ustawienia bieżącego czasu uniksowego.