Краткая версия:
Проблема: мне нужно, чтобы несколько устройств Android делали что-то в одно и то же время (в течение примерно 100 миллисекунд). Например, я хочу, чтобы все устройства воспроизводили определенный звук в заранее определенный момент времени.
Вопрос: Могу ли я использовать время GPS, чтобы синхронизировать часы устройств?
Более длинная версия:
Несколько человек с устройствами Android находятся в одном и том же месте на открытом воздухе (для какого-то конкретного спортивного мероприятия). Все устройства должны сигнализировать об определенных событиях одновременно. (Какое время будет определено заранее, и не важно, что они делают это именно в это время, если они делают это в одно и то же время). FWIW: эти мероприятия помогут людям одновременно начать заниматься спортом.
Вот предположения, которые я могу сделать:
Я не могу использовать внутренние часы, чтобы знать, когда воспроизводить события: пользователи могут вручную изменять время, и даже если устройство настроено на получение времени из сотовой сети, эта сеть может не предоставлять точное время. Два устройства могут быть зарегистрированы в разных сетях, и, следовательно, их время может не синхронизироваться очень хорошо.
При запуске приложения каждое устройство могло запрашивать исправление GPS и сохранять разницу между временем GPS и внутренними часами. Теперь мастер может объявлять события на основе этого времени GPS (используя свои внутренние часы и вычитая смещение, сохраненное ранее).
Будет ли это достаточно точным и надежным?
Заранее большое спасибо, Андреас Лейтнер