Синхронизировать устройства Android по времени GPS?

Краткая версия:

Проблема: мне нужно, чтобы несколько устройств Android делали что-то в одно и то же время (в течение примерно 100 миллисекунд). Например, я хочу, чтобы все устройства воспроизводили определенный звук в заранее определенный момент времени.

Вопрос: Могу ли я использовать время GPS, чтобы синхронизировать часы устройств?

Более длинная версия:

Несколько человек с устройствами Android находятся в одном и том же месте на открытом воздухе (для какого-то конкретного спортивного мероприятия). Все устройства должны сигнализировать об определенных событиях одновременно. (Какое время будет определено заранее, и не важно, что они делают это именно в это время, если они делают это в одно и то же время). FWIW: эти мероприятия помогут людям одновременно начать заниматься спортом.

Вот предположения, которые я могу сделать:

  • Может быть, а может и не быть сотовой связи. (Он находится на открытом воздухе и может находиться далеко от городских районов)
  • Устройства могут быть подключены или не подключены к Интернету. (У некоторых людей может не быть тарифного плана на передачу данных)
  • Устройства могут общаться друг с другом. Если устройства не подключены к Интернету, они будут подключены через Wi-Fi (хотя Wi-Fi может не иметь интернет-шлюза).
  • Устройства находятся снаружи (а не внутри зданий). (Это хорошо, это означает, что все устройства могут получить GPS-координаты)
  • Устройства физически расположены близко друг к другу (т.е. в пределах 300 м2).(Не уверен, что это важно)

Я не могу использовать внутренние часы, чтобы знать, когда воспроизводить события: пользователи могут вручную изменять время, и даже если устройство настроено на получение времени из сотовой сети, эта сеть может не предоставлять точное время. Два устройства могут быть зарегистрированы в разных сетях, и, следовательно, их время может не синхронизироваться очень хорошо.

При запуске приложения каждое устройство могло запрашивать исправление GPS и сохранять разницу между временем GPS и внутренними часами. Теперь мастер может объявлять события на основе этого времени GPS (используя свои внутренние часы и вычитая смещение, сохраненное ранее).

Будет ли это достаточно точным и надежным?

Заранее большое спасибо, Андреас Лейтнер

20
задан user1057534 21 November 2011 в 10:21
поделиться