Próbuję zsynchronizować sygnatury czasowe między wieloma urządzeniami z Androidem, aby móc uruchomić zadanie w tym samym czasie. Myślę, że mogę użyć Timer i ustawić datę na podstawie System.currentTimeMillis(), ale problem wydaje się, że znaczniki czasu wielu urządzeń są na tyle daleko od siebie, że nie otrzymuję precyzji, którą chcę.Synchronizuj znaczniki czasu na wielu urządzeniach
Patrzyłem gdzieś w zakresie 50-100 ms, jeśli to możliwe. Jednym z pomysłów było użycie Android Beam do wysłania znacznika czasu jednego urządzenia do drugiego urządzenia, a następnie obliczenie delty, ale okazało się, że muszę uzyskać znacznik czasu zanim wiadomość zostanie faktycznie wysłana i odebrana (tj. Im dłuższy użytkownik czeka na wysłanie, tym większa będzie delta), co powoduje, że schemat całkowicie się rozpada.
Jak mogę zsynchronizować dwa lub więcej urządzeń, aby ich zegary wewnętrzne nie były oddalone o więcej niż 100 ms od siebie? Czy jest to możliwe bez korzystania z zewnętrznego serwera, który trzyma czas?
Wszelkie inne sugestie dotyczące technik robienia czegoś na wielu urządzeniach tak blisko, jak to tylko możliwe, byłyby również mile widziane.
Próbowałem użyć lokalizacji GPS. Mogę to zrobić i ustawić deltę, i chociaż nie mam jeszcze synchronizacji, nie wiem, czy to będzie możliwe. Podczas moich praktycznych testów musiałem czekać z minutą nawet na sygnał GPS. Nie wspominając, że będzie to kolejne wymagane zezwolenie dla aplikacji. Będę w dalszym ciągu używać metody czasu GPS i zobaczę, czy mogę opracować schemat synchronizacji, który działa, ale nie wiem, czy korzystanie z GPS będzie niezawodne na dłuższą metę. –