Nearby Connections — это API для одноранговой сети, который позволяет приложениям легко обнаруживать, подключаться и обмениваться данными с ближайшими устройствами в режиме реального времени, независимо от подключения к сети.
Некоторые примеры использования:
- Совместная доска: записывайте идеи с соседними участниками на общей виртуальной доске.
- Локальная многопользовательская игра: настройте многопользовательскую игру и пригласите других пользователей поблизости присоединиться.
- Игры на нескольких экранах: используйте телефон или планшет в качестве игрового контроллера, чтобы играть в игры, отображаемые на ближайшем устройстве Android с большим экраном, например Android TV.
- Передача файлов в автономном режиме: обменивайтесь фотографиями, видео или любыми другими данными быстро и без подключения к сети.
Введение
Nearby Connections обеспечивает рекламу, обнаружение и соединения между соседними устройствами в полностью автономном одноранговом режиме. Соединения между устройствами имеют высокую пропускную способность, малую задержку и полностью зашифрованы, что обеспечивает быструю и безопасную передачу данных.
Основная цель этого API — предоставить простую, надежную и производительную платформу. Под капотом API использует комбинацию технологий Bluetooth, BLE и Wi-Fi, используя сильные стороны каждой из них и обходя их слабые стороны. Это эффективно абстрагируется от капризов Bluetooth и Wi-Fi на различных платформах и версиях ОС, позволяя разработчикам сосредоточиться на функциях, которые важны для их пользователей.
Обзор API
Использование API делится на две фазы: до подключения и после подключения.
На этапе перед подключением рекламодатели рекламируют себя, в то время как первооткрыватели обнаруживают ближайших рекламодателей и отправляют запросы на подключение. Запрос на подключение от Discoverer к Publisher инициирует симметричный поток аутентификации, в результате которого обе стороны независимо принимают (или отклоняют) запрос на подключение.
После того, как запрос на соединение принят обеими сторонами, соединение считается установленным, и устройства переходят к фазе после установления соединения, во время которой обе стороны могут обмениваться данными.
Реклама и открытие
Рекламодатели станут видимыми для других пользователей, а первооткрыватели будут уведомлены, когда новый рекламодатель будет найден или потерян.
Установление соединений
Когда первооткрыватель хочет подключиться к соседнему рекламодателю, он может запросить соединение.
Обе стороны будут уведомлены о процессе установления соединения, и у обеих будет возможность принять или отклонить соединение.
Как только обе стороны ответят, каждая будет уведомлена о результате. Если обе стороны приняли соединение, соединение считается установленным, после чего можно начинать передачу данных.
Обмен данными
После установления соединения дальнейшее использование API становится симметричным, поэтому больше нет различия между Рекламодателем и Исследователем.
Теперь обе стороны могут обмениваться данными. Существует 3 типа поддерживаемых полезных нагрузок:
- Байты: байтовые массивы ограничены 32 КБ; они хороши для отправки таких вещей, как метаданные или управляющие сообщения.
- Файл: Файлы любого размера; они передаются из приложения в сетевой интерфейс с минимальным копированием через границы процесса.
- Поток: поток данных, генерируемый «на лету», как в случае записанного аудио/видео, окончательный размер которого заранее не известен.
Получатели будут уведомлены о новых поступающих данных и любых обновлениях хода выполнения, отменах или сбоях.
Установленные соединения являются полнодуплексными, что означает, что рекламодатели и первооткрыватели могут одновременно отправлять и получать данные.
Сбор данных
При использовании служб Google Play Nearby SDK собирается аналитика использования для улучшения работы.
- Показатели производительности: задержка обнаружения и подключения, надежность и пропускная способность собираются при сканировании и подключении к устройствам с помощью Nearby SDK.
- Информация об устройстве: модель устройства, страна, версия сборки и имя пакета приложения собираются и связываются с показателями производительности для определения региональных и специфичных для устройства срезов.
Конечные пользователи могут разрешить или запретить эту коллекцию, выбрав «Настройки» > «Google» > «Использование и диагностика».