Обзор

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

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

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

Введение

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

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

Обзор API

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

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

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

Реклама и продвижение

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

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

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

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

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

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

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

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

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

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

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

Сбор данных

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

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

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