Pull to refresh

Comments 20

Для Android-разработчика понимание работы с сетью неотъемлемо. Успехов.
«Invitation to connect» убивает всю прелесть приложений на основе Wi-Fi P2P. Найдёте способ подключаться без этого сообщения — Вам памятник поставят :)

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

Странно решать вопрос доверия за разработчиков. Что мешает вытащить механизм авторизации в SDK?

Думаю, не доверие производителя платформы (Андроид и тд) к разработчику. А системных подходов в данном случае похоже пока нет, вот и зажимают возможности для разработки.

А нельзя ли решить проблему через nearby пакет из play services?
На сколько я помню при nearby обязательно подключение к одной WiFi сети
Может вы слышали что-нибудь об Xposed Framework? На стэке ходят ответы, которые указывают, мол именно этот инструмент может решить эту проблему…
Если не смущает необходимость рута и установки дополнительного софта из левых источников (это всё для каждого из устройств, которые будут использовать Вашу библиотеку) — то да, видимо может.
Но с рутом и никаких фреймворков не надо, можно вообще свой андроид с блэкджеком и шлюхами залить :)
Будет ли работать такая сеть, если: устройство 1 видит устройство 2, но не видит устройство 3; в свою очередь, устройство 3 видит устройство 2, но не видит устройство 1 в радиусе действия?
Да, если владельцем группы станет устройство 2
В иных случаях получатся связи между двумя девайсамм
Хорошая статья. Я когда-то тоже пытался сделать приложение-чат которое бы автоматически искало и соединялось с ближайшими устройствами по Wi-Fi (с установленным приложением) и выступало одновременно в роли клиента и ретранслятора. В идеале я хотел создать автоматически расширяемую децентрализованную Wi-Fi сеть без обязательной регистрации/идентификации.

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

  • Первый тип приложений требовал создание точки доступа (сервера), а клиенты к нему подключались. Соответственно все данные ходили через сервер, ни о какой масштабируемости сети не было и речи.
  • Второй тип приложений был обманкой. Клиенты подключались к удаленному серверу (через интернет), по GPS определялись координаты клиентов и на основе их координат выводился список «ближайших людей». Естественно все сообщения тоже передавались через интернет.

Тогда я начал копать в сторону API, но там тоже возникли проблемы. Сначала решил действовать «грубой силой», передавать по Wi-Fi данные «в никуда», без предварительного сопряжения и идентификации устройств. Но, к сожалению, стандартными средствами Android API это невозможно. Wi-Fi Direct — не понял как реализовать автоматический поиск и автоматическое (без подтверждения) подключение множества устройств друг к другу. Wi-Fi Aware — тупо не смог найти ни какой документации или хотя бы подробного описания технологии.

Буду рад если кто-то подскажет рабочие аналоги подобных приложений или выскажет свои идеи по реализации.
Отличный отзыв, при нахождении аналогов также натыкался на Вами указанные два пункта
Рассматривал все Вами упомянутые способы по беспроводной передаче данных, и пришел к выводу использовать Wi-Fi Direct. Однако, смотря на мои велосипеды и костыли, можно сказать точно — андроиду есть к чему стремиться в этом плане.
В свое время написал приложение Wi-Fi Direct рация (https://play.google.com/store/apps/details?id=ee.bl.artemka.wifiwalkingtalking) Включает в себя простенький обмен сообщениями. Но поддержку давно забросил к сожалению.
Наверное, уместно напомнить, что существует The Serval Project, цель которого также обеспечить связь с без наличия соответствующей инфраструктуры.
Спасибо, надо посмотреть.
А вот еще Challenge на 2$ миллиона, на похожую тематику «децентрализованного веб-а», правда с немного другой конценцией, рассматриваются железо + софт. Но боюсь, что приз маловат для этого.

https://blog.mozilla.org/blog/2017/06/21/2-million-prize-decentralize-web-apply-today/
Mozilla and the National Science Foundation are offering a $2 million prize for big ideas that decentralize the web. And we’re accepting applications starting today…
Sign up to leave a comment.

Articles