Обзор

Nearby Connections — это API одноранговой сети, который позволяет приложениям легко обнаруживать, подключаться и обмениваться данными с ближайшими устройствами в режиме реального времени независимо от наличия сетевого подключения.

Некоторые примеры вариантов использования:

  • Совместная доска: записывайте идеи вместе с находящимися поблизости участниками на общей виртуальной доске.
  • Локальная многопользовательская игра: организуйте многопользовательскую игру и пригласите присоединиться других пользователей поблизости.
  • Игры на нескольких экранах: используйте телефон или планшет в качестве игрового контроллера для игр, отображаемых на расположенном поблизости большом экране Android-устройства, например Android TV.
  • Передача файлов в автономном режиме: быстро делитесь фотографиями, видео и любыми другими типами данных без необходимости подключения к сети.

Введение

Nearby Connections обеспечивает рекламные объявления, поиск и установление соединений между близлежащими устройствами в полностью автономном режиме (p2p). Соединения между устройствами характеризуются высокой пропускной способностью, малой задержкой и полностью зашифрованы для быстрой и безопасной передачи данных.

Основная цель этого API — предоставить простую, надёжную и производительную платформу. В основе API лежит сочетание технологий Bluetooth, BLE и Wi-Fi, которые используют сильные стороны каждой из них и обходят их недостатки. Это эффективно абстрагирует особенности Bluetooth и Wi-Fi на различных платформах и в различных версиях ОС, позволяя разработчикам сосредоточиться на функциях, важных для их пользователей.

Обзор API

Использование API делится на две фазы: до подключения и после подключения.

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

После того, как запрос на соединение принят обеими сторонами, соединение считается установленным, и устройства переходят в фазу после соединения, в течение которой обе стороны могут обмениваться данными.

Реклама и открытия

Рекламодатели станут видимы для других первооткрывателей, а первооткрыватели будут уведомлены, если будет найден или потерян новый рекламодатель.

Установление связей

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

Обе стороны будут уведомлены о процессе инициирования соединения, и обе будут иметь возможность принять или отклонить соединение.

После того, как обе стороны ответят, каждая из них будет уведомлена о результате. Если обе стороны приняли соединение, оно считается установленным, и можно начинать передачу данных.

Обмен данными

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

Теперь обе стороны могут обмениваться данными. Поддерживаются 3 типа полезной нагрузки:

  • Байты: Массивы байтов, ограниченные 32 КБ; они хороши для отправки таких вещей, как метаданные или управляющие сообщения.
  • Файл: файлы любого размера; они передаются из приложения в сетевой интерфейс с минимальным копированием через границы процессов.
  • Поток: поток данных, который генерируется «на лету», как в случае с записанным аудио/видео, при этом его окончательный размер заранее неизвестен.

Получатели будут уведомлены о новых поступающих данных, а также о любых обновлениях, отменах или сбоях.

Устанавливаемые соединения являются полнодуплексными, что означает, что рекламодатели и исследователи могут одновременно отправлять и получать данные.

Сбор данных

При использовании Nearby SDK сервисов Google Play собирается аналитика использования для улучшения пользовательского опыта.

  • Показатели производительности: задержка обнаружения и подключения, надежность и пропускная способность собираются при сканировании и подключении к устройствам с помощью Nearby SDK.
  • Информация об устройстве: модель устройства, страна, версия сборки и имя пакета приложения собираются и связываются с показателями производительности для определения региональных и специфичных для устройства фрагментов.

Конечные пользователи могут разрешить или запретить этот сбор данных, перейдя в Настройки > Google > Использование и диагностика.