Обзор

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» > «Использование и диагностика».