Устройства поблизости

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

Устройства поблизости

Эта история началась с функции “Рядом” в одном из наших мобильных приложений. Мы хотели, чтобы пользователи могли быстро создать групповой чат или добавить находящихся рядом пользователей в друзья.

Мы попробовали решить эту задачу при помощи геолокации, Bluetooth, Wi-Fi и ультразвука, но у каждого из способов мы обнаружили критичные в нашем случае недостатки. В итоге мы придумали новый способ. Он основан на поиске совпадения окружающего шума: если устройства слышат одно и то же, то, скорее всего, они находятся рядом.

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

Взаимодействие между устройствами поблизости

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

Например, Петров только что познакомился с Ивановым и они пытаются “подружиться” на . Спустя несколько безуспешных попыток найти друг-друга, они, скорее всего, закроют , обменяются номерами телефонов и будут общаться через WhatsApp.

Кстати, предусмотрели это: в их мобильном приложении для iOS и Android есть функция “Люди Рядом”, которая позволяет найти других пользователей при помощи геолокации. О минусах этого способа я расскажу чуть позже.

Поиск нового знакомого вПоиск нового знакомого в

Чтобы функция действительно была удобна пользователю, она должна работать:

  • На любом смартфоне
  • Всегда и везде. На улице, в транспорте, в офисе и т.д.
  • Кроссплатформенно. Как минимум на iOS и Android, а лучше, и в браузере
  • Точно. Определять устройства, которые действительно рядом
  • Быстро. Устройство должно быть найдено менее, чем за 10 секунд
  • Просто. Без дополнительных действий со стороны пользователя

Окружающий шум

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

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

Каждое устройство в реальном времени захватывает звук с микрофона и преобразовывает его в специальный отпечаток при помощи перцептивной хэш-функции.

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

Отпечаток звука с точной меткой времени отправляется на сервер. Сравнивая его с отпечатками других устройств, сделанных в тот же момент времени, сервер может определить, насколько похожи исходные звуки. Если показатель схожести выше определенного порога — устройства получают идентификаторы друг-друга для последующего взаимодействия. Пример и сравнение отпечатков с двух разных устройств Нужно было убедиться, что данный принцип работает и способен находить совпадения в звуке, записанном разными устройствами на расстоянии нескольких метров, а также, что заведомо разный звук не совпадает. Мы вручную собрали сотни часов звука, записанного одновременно на несколько устройств во множестве различных мест. Используя эти данные, мы перебрали множество алгоритмов генерации и параметров сравнения отпечатков для достижения наилучшего результата. В итоге добились того, что 6-секундный отпечаток позволяет обнаружить устройство на расстоянии до 5 метров в 96% случаев, а ложноположительный результат возможен в 0.0039% случаев. Мы разработали библиотеки для iOS и Android, которые скрывают от приложения всю реализацию через простой API и встроили их в свои приложения. Недостаток данного подхода в том, что он не работает в абсолютной тишине. Тишина очень похожа на любую другую тишину и алгоритм намеренно игнорирует ее, чтобы исключить ложные срабатывания. Стоит отметить, что абсолютная тишина встречается в реальных условиях крайне редко. Достаточно стука клавиш клавиатуры или звука шагов, чтобы устройства обнаружили друг-друга. Иногда это выглядит забавно: пользователи молча ждут обнаружения секунд 10, после чего один из них говорит что-то вроде “Это не работает!”. Эта фраза работает как заклинание и через секунду устройства обнаруживают друг-друга. Одно преимуществ данного подхода — кроссплатформенность. JS-версия библиотеки, работает в Chrome, Safari, Firefox, Edge, в том числе, в их мобильных версиях.

Еще один способ…

В нашем приложении функция “Рядом” является одной из ключевых. Мы попробовали применить различные существующие способы для ее реализации, но столкнулись с критичными для нас ограничениями и проблемами. Давайте подробно рассмотрим альтернативные способы.

Геолокация

Это наиболее очевидный способ решить задачу. В момент, когда пользователь открывает раздел “Рядом”, мы получаем его текущее местоположение и выполняем поиск ближайших пользователей на сервере.

Если представить местоположение как центр окружности, а погрешность координат в виде радиуса, то 2 пользователя могут быть изображены следующим образом:
Если расстояние между устройствами (d) меньше суммы погрешностей (r1 + r2), значит есть вероятность (P), что пользователи находятся рядом.

Радиус поиска должен быть не меньше погрешности координат.

Как оказалось, реальные координаты смартфона могут находиться и за пределами погрешности, например, в Android это происходит в 32% случаев. Значит, даже находясь рядом, пользователи все равно могут не “увидеть” друг-друга.

Координаты, полученные при помощи GPS и ГЛОНАСС точны, но этот способ зачастую не работает внутри помещений, кроме того, может потребоваться до минуты на поиск спутников. При этом, модуль GPS/ГЛОНАСС присутствует не во всех устройствах (Привет, iPad Wi-Fi!) или может быть отключён на уровне ОС (Привет, Android!). На самом деле, даже вне здания, на улице с плотной застройкой GPS/ГЛОНАСС часто ошибается из-за отражения сигнала от зданий и может выдавать точность ниже 100 метров: Поэтому в большинстве случаев приходится использовать координаты, полученные при помощи триангуляции по сигналу окружающих Wi-Fi сетей и сотовых вышек, этот способ работает быстро и энергоэффективно, но точность на порядок ниже: 100 — 1500 метров. На практике, устройство нередко определяет неверное местоположение в городе, а иногда может “телепортироваться” в другой город. Мы реализовали этот способ и протестировали его в Москве, примерно в 15% случаев устройства не находят друг-друга из-за неверных координат. Особенно часто ошибки происходят внутри высоток Москва-Сити, в метро и наземном транспорте. Также из-за низкой точности часто будут попадаться “лишние” пользователи (не находящиеся рядом). + простой в реализации способ − низкая точность − плохо работает в транспорте (в движении)

Bump

Команда Bump придумала оригинальный способ увеличить точность поиска по геолокации. Пользователям нужно стукнуться своими смартфонами, при этом, акселерометр фиксирует точное время соприкосновения и отправляет его вместе с координатами на сервер, алгоритм ищет пару только среди устройств с одинаковым временем соприкосновения.

Эта простая идея на порядки уменьшает вероятность ложноположительного результата, что дает возможность значительно увеличить радиус поиска.

Но в 2013 их поглотил Google, а уже в 2014 проект закрыли, несмотря на то, что Bump SDK был встроен во множество сторонних приложений, а приложение Bump для обмена файлами получило сотни миллионов скачиваний.

Дальнейшая судьба технологии неизвестна.

Главный недостаток технологии заключается в том, что за один ”Бамп” связывается только пара устройств. Чтобы объединить группу пользователей, потребуется сделать множество “Бампов”. + высокая точность − необходимо сталкивать друг о друга устройства − попарное обнаружение устройств − проект закрыт

Bluetooth, BLE и Wi-Fi

iOS и Android категорически не дружат по Bluetooth. Передача данных между этими платформами — нетривиальная задача: Apple позволяет приложению подключиться только к сертифицированным (Made For iPhone) Bluetooth-устройствам.

Чтобы устройства могли обнаружить друг-друга, используется следующий способ: iOS имитирует какую-либо Bluetooth Low Energy-периферию, устанавливая свой токен в качестве имени BLE-устройства. Android временно меняет Bluetooth-имя смартфона на свой токен и включает режим обнаружения.

Теперь, чтобы обнаружить устройства вокруг, Android сканирует Bluetooth для обнаружения Android и BLE для обнаружения iOS-устройств. iOS сканирует только BLE для обнаружения iOS, т.к. сканирование Bluetooth-устройств невозможно с помощью публичного API.

Для того, чтобы обнаружить Android, iOS через облако получает идентификаторы окружающих Android-устройств, которые обнаружили его BLE-токен.

Окружающие Wi-Fi-сети в некоторых случаях помогают обнаружить, что устройства рядом: iOS-приложение может получить BSSID Wi-Fi точки доступа, к которой в данный момент подключен пользователь, а Android BSSID всех видимых точек. Если найдено совпадение, значит, пользователи рядом.
Грамотно реализовать этот способ самостоятельно не так уж просто, в том числе из-за множества особенностей BLE-стека разных версий Android и iOS. Существуют библиотеки, которые скрывают сложную реализацию “под капот”.

Мы попробовали Google Nearby. Обнаружение пары iOS — Android происходит медленно, в среднем поиск занимает 20 секунд, а в некоторых случаях длится до 40 секунд, это оказалось главным останавливающим фактором.

Другой нюанс заключается в том, что Bluetooth выключен на большинстве смартфонов, поэтому пользователям iOS каждый раз при использовании функции нужно будет правильно ответить на вопрос “Разрешить приложению использовать Bluetooth?”.

Также, стоит помнить, что использование Bluetooth (на Android) сильно влияет на потребление заряда. Google предупреждает, что Google Nearby увеличивает потребление энергии в 2.5 — 3.5 раза.

+ proof of proximity (гарантия того, что устройства находятся рядом) − медленное обнаружение − высокое потребление энергии

Обмен информацией через звук

У всех смартфонов есть динамик и микрофон. Можно закодировать какой-либо идентификатор в звук на одном устройстве, воспроизвести его при помощи динамика, декодировать на устройствах в радиусе слышимости и таким образом объединить устройства в группу.
Пример спектрограммы сигнала Chirp.

io

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

Чаще всего используется FSK и PSK-модуляция, генерирующая похожий на свист или шум (в зависимости от плотности данных) звук, что раздражает многих людей (пример звука). Этот способ реализован в проекте Chirp.io.

− плохо работает в шумных местах − раздражает окружающих Можно использовать диапазон 18-20 кГЦ, он обычно не зашумлен, а большинство взрослых людей не услышат раздражающий звук. К сожалению, некоторые смартфоны тоже воспринимают его плохо, становится актуальна проблема отражения и интерференции, дальность устойчивой связи уменьшается до 0.5 — 3 метров. Этот способ реализован в Google Nearby и Chirp.io, но включается отдельно. − работает на слишком малых расстояниях

Вместо заключения

Источник: https://habr.com/ru/post/347954/

Функция Windows 10 «Обмен с устройствами поблизости», как использовать?

Устройства поблизости

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике: https://hetmanrecovery.com/ru/recovery_news/how-to-use-share-with-devices-in-the-vicinity-in-windows-10.htm

Читайте как отправить или получить файл или документ с одного компьютера с Windows 10 на другой. Как связаться с нужным компьютером через «Bluetooth», и осуществляет передачу или прием данных по беспроводной сети «Wi-Fi».

В последней версии операционной системы «Windows 10» корпорация «Microsoft» применила весь накопленный опыт, полученный при разработке и отладке предыдущих версий операционных систем.

Выпустив первую версию достаточно давно, разработчики каждый раз работали над улучшением характеристик системы, добавлением новых опций и функций, усовершенствованием существующих приложений и созданием новых.

Эволюция функции в Windows

С самой первой версии в операционной системе «Windows» присутствовала функция обратной связи, которая активировалась при возникновении непредвиденных ошибок или сбоев системы. Все отчеты об обнаруженных неполадках передавались на сервера корпорации «Microsoft» для дальнейшего исследования и исправления.

С развитием компьютерных технологий появился новый вид угроз для безопасного функционирования системы – это вредоносное программное обеспечение. Ответом корпорации «Microsoft» стал запуск программы по обнаружению ошибок «Windows Bug Bounty».

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

Благодаря такому подходу удается быстро исправить существующие уязвимости или найти новые после выпуска обновленных версий операционной системы.

Одним из инструментов обратной связи с разработчиками «Microsoft» является новая программа «Windows 10 Insider Preview», доступная для пользователей операционной системы «Windows 10».

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

– все это и многое другое проходит предварительную проверку на работоспособность и устойчивость к возникновению ошибок. Все новые функции операционной системы «Windows 10» предоставляются бесплатно, взамен на полноценные отзывы об ошибках, при их возникновении.

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

Как видите, работа по усовершенствованию операционной системы «Windows 10» продолжается, добавляются новые функции и изменения.

В этой статье мы расскажем об одной такой функции «Обмен с устройствами поблизости» (в английской версии операционной системы «Windows»«Near Share»), которая еще проходит тестирование.

В данный момент она доступна только в том случае, если вы являетесь участником программы «Windows 10 Insider Preview».

Благодаря ей, персональные компьютеры на базе «Windows 10» теперь могут отправлять файлы, ссылки, фотографии и многое другое на соседние компьютеры, используя беспроводную сеть «Bluetooth» или «Wi-Fi». Функция обмена файлов работает по тому же принципу, что и технология «AirDrop» от «Apple», и должна быть представлена в обновлении «Spring Creators Update» в апреле месяце.

Что представляет собой функция «Обмен с устройствами поблизости»

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

Однако если получатель или отправитель находится рядом с вами, то такой способ несколько сложен и неудобен. В этом случае вам поможет функция «Обмен с устройствами поблизости».

Она предоставляет вам возможность передачи и обмена файлами между устройствами, находящимися поблизости, которые работают под управлением операционной системы «Windows 10». Главным достоинством этой функции является ее простота использования с возможностью быстрого доступа к ней.

Функция осуществляет поиск компьютеров, в которых обмен с устройствами активирован, связывается с нужным из них через «Bluetooth», и осуществляет передачу или прием данных по беспроводной сети «Wi-Fi».

Как включить совместный доступ

На данный момент функция «Обмен с устройствами поблизости» работает только между двумя компьютерами на базе операционной системы «Windows 10». Вы пока не можете использовать функцию обмена с мобильными или другими операционными системами.

Для начала вы должны включить функцию на своем компьютере.

Это возможно сделать несколькими способами: в приложении «Параметры», напрямую в диалоговом окне функции «Обмен с устройствами поблизости», в приложении «Центр уведомлений» на «Панели задач».

Способ 1: Откройте приложение «Параметры», используя любой вариант, который вам больше всего подходит. Таких вариантов существует достаточно много, ниже мы опишем только некоторые из них:

Вариант 1: Нажмите вместе сочетание клавиш «Windows + X» или щелкните правой кнопкой мыши на кнопке «Пуск», расположенной в левом нижнем углу рабочего стола на «Панели задач». В открывшемся меню доступных приложений выберите раздел «Параметры».

Вариант 2: Нажмите кнопку «Пуск» и откройте главное пользовательское меню «Windows». Для доступа к приложению «Параметры» в левой панели меню нажмите значок шестеренки. Или, используя полосу прокрутки, опустите бегунок вниз и выберите в списке доступных приложений и программ раздел «Параметры».

Вариант 3: Нажмите вместе сочетание клавиш «Windows + I» и откройте приложение «Параметры» напрямую. В перечне доступных страниц приложения выберите раздел «Система».

В открывшемся окне в левой панели опустите бегунок полосы прокрутки вниз и выберите раздел «Общие возможности». В правой панели окна в разделе «Обмен с устройствами поблизости» установите переключатель в положение «Вкл.» и включите функцию обмена информацией с устройствами.

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

Для этого нажмите кнопку «Изменить» и укажите новую папку для сохранения полученных файлов. Вы также можете выбрать, кто из пользователей может делиться с вами содержимым.

По умолчанию указана опция «Все поблизости», означающая, что каждый соседний компьютер с операционной системой «Windows 10» с включенной функцией обмена может передавать вам или получать от вас любые файлы.

Если в раскрывающемся меню вы выберете опцию «Только мои устройства», то функция обмена будет работать только между компьютерами, на которых вы вошли с одинаковой учетной записью «Microsoft».

Способ 2: Чтобы включить функцию «Обмен с устройствами поблизости» необходимо нажать кнопку «» в любом месте операционной системы «Windows 10», где она присутствует.

Например, нажмите кнопку «» на панели инструментов веб-браузера «Microsoft Edge» или щёлкните правой кнопкой мыши любой файл и во всплывающем меню выберите из списка доступных действий раздел «Отправить».

Затем в меню раздела «» нажмите параметр «Коснитесь, чтобы включить обмен с устройствами поблизости».

Способ 3: В правом нижнем углу рабочего стола на «Панели задач» нажмите значок «Центра уведомлений Windows 10». Из правого края вашего дисплея выйдет всплывающая панель, в нижней части которой вы увидите кнопки быстрого действия. Нажмите на кнопку «Обмен с устройствами» и функция обмена будет включена.

Примечание: Если на панели «Центра уведомлений» не отображается кнопка быстрого действия «Обмен с устройствами», то вам необходимо будет активировать ее в приложении «Параметры», разделе «Система», вкладке «Уведомления и действия». Более подробно вы можете прочитать о способе настройки кнопок быстрого действия в «Центре уведомлений» в нашей ранней статье «Как использовать и настраивать Центр уведомлений Windows 10».

Как поделиться файлом

После включения функции «Обмен с устройствами поблизости» вы можете использовать ее для отправки файлов между соседними персональными компьютерами по беспроводной сети. Для этого откройте «Проводник файлов», щелкните правой кнопкой мыши файлу, которым вы планируете поделиться, и выберите команду «Отправить».

Или отметьте файл (щелкнув по нему один раз левой кнопкой мыши), а затем в ленте главного меню проводника файлов выберите вкладку «» и нажмите кнопку «Отправить».

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

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

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

Такое же уведомление появляется и на другом компьютере рядом с панелью задач и будет продублировано в «Центре уведомлений».

Чтобы открыть Центр уведомлений, щелкните значок уведомления на «Панели задач» или нажмите вместе сочетание клавиш «Windows + A» на клавиатуре.

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

Этот же процесс обмена работает и с другими видами информации. Он доступен везде, где присутствует кнопка «».

Например, вы можете поделиться ссылкой в «Microsoft Edge» с другим компьютером. Просто откройте веб-браузер, перейдите на страницу, которую вы хотите передать, а затем нажмите или коснитесь кнопки «» на панели инструментов. В диалоговом окне выберите имя компьютера, с которым вы хотите поделиться ссылкой.

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

Приложение «Фотографии» в «Windows 10» также имеет кнопку «». Поэтому вы можете открыть одну или несколько фотографий в приложении и использовать функцию «Обмен с устройствами поблизости» для отправки фотографий на другой компьютер аналогичным способом.

В настоящее время нет мобильного приложения для «iPhone», «iPad» или «Android», поэтому вы не можете использовать функцию «Обмен с устройствами поблизости» для совместного обмена данными с такими устройствами. Однако вы можете использовать функцию «Ваш телефон» для отправки ссылок веб-страниц с вашего телефона или планшета на компьютер с операционной системой «Windows 10».

На сегодняшний день функция «Обмен с устройствами поблизости» только находится на завершающей стадии тестирования, но она имеет большой потенциал для упрощенного обмена данными между компьютерами на базе операционной системы «Windows 10». Мы уверены, что эта функция получит широкое применение у пользователей после ее официального выпуска за счет своей простоты и удобства.

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике: https://hetmanrecovery.com/ru/recovery_news/how-to-use-share-with-devices-in-the-vicinity-in-windows-10.htm

Источник: https://zen.yandex.ru/media/hetmansoftware/funkciia-windows-10-obmen-s-ustroistvami-poblizosti-kak-ispolzovat-5c0f90a598832000acf35017

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

    ×
    Рекомендуем посмотреть