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