Может ли Android создавать одноранговые специализированные сети?


95

Можно ли настроить Android в режиме одноранговой сети Wi-Fi? Например, я хотел бы, чтобы один телефон транслировал сообщение, и чтобы все одноранговые узлы в сети принимали широковещательную передачу, не имея сервера. Я хотел бы использовать Wi-Fi, так как диапазон Bluetooth более ограничен.


1
Вы говорите об "Android для Android" или "Android для любого" (например, ПК, Mac, iphone и т. Д.)?
AlikElzin-kilaka

1
@Doughy, если вы нашли какое-либо решение, поделитесь.
нитин тяги

Ответы:


62

Вот отчет об ошибке в запрошенной вами функции.

Его статус «рассмотрен», но я не думаю, что он был реализован.

http://code.google.com/p/android/issues/detail?id=82


21
Пожалуйста, проголосуйте за эту ошибку, любой, кто проявляет интерес к Ad Hoc на Android - у меня есть идея приложения, которая намного сложнее из-за отсутствия ad hoc
SamStephens,

14

Хотя Android не может найти и подключиться к одноранговым сетям, он определенно может подключаться к точкам доступа. Чтобы обойти эту проблему, вы можете превратить свою беспроводную карту в точку доступа, например, с помощью Connectify .


3
Доступны ли другие инструменты, совместимые с Windows XP?
Faiz

Лучший ответ! Это сработало быстро и безупречно. Connectify - это очень круто.
Саймон Гиллби,

1
Установка этого приложения дала мне синий экран!
zbek

13

В настоящее время мы с моим другом разрабатываем java-библиотеку, реализующую протокол AODV (многопозиционная маршрутизация, подходящая для мобильных сетей) в рамках нашей бакалаврской диссертации. Окончательный «продукт» включает в себя простой способ создания / присоединения к специальной сети на нескольких устройствах Android и интерфейс через библиотеку для отправки и получения сообщений. К сожалению, у каждого типа телефонов, таких как hero, nexsus one ... есть телефонный способ создания специальной сети, поэтому в настоящее время мы поддерживаем только несколько телефонов).

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

кстати все это с открытым исходным кодом

http://code.google.com/p/adhoc-on-android/


1
полностью забыл этот пост, извините. Если кому-то интересно, мы только что сдали сегодня нашу диссертацию (написанную на английском!), И я буду рад поделиться информацией. Моя почта jradi88@gmail.com
Rabie Jradi

1
Я загрузил исходный код и документацию (отчет) на code.google.com/p/adhoc-on-android
Rabie Jradi

есть ли выход для другого устройства @RabieJradi?
gumuruh

Если вы хотите поддерживать другие устройства, единственный выход, к сожалению, - реализовать необходимые команды (в зависимости от телефона!) Для настройки и разрушения одноранговой сети и скомпилировать новую библиотеку C на основе startstopadhoc.c ( файл, который нужно изменить). Вы можете найти исходный код здесь: code.google.com/p/adhoc-on-android/source/browse/trunk/jni/ ... Если вам повезет, команды, которые вам нужно выполнить, могут быть похожи на настройку Nexus One , так что простое использование существующей скомпилированной библиотеки C может быть всем, что вам нужно.
Rabie Jradi

В основном нам помогли выяснить, какие команды необходимы для настройки, посмотрев, что следующий проект code.google.com/p/android-wifi-tether
Rabie Jradi

9

вы можете подключить свое устройство Android к известной одноранговой сети.

отредактируйте /system/etc/wifi/tiwlan.ini

WiFiAdhoc = 1
dot11DesiredSSID = <your_network_ssid>
dot11DesiredBSSType = 0 

отредактируйте /data/misc/wifi/wpa_supplicant.conf

ctrl_interface=tiwlan0
update_config=1
eapol_version=1
ap_scan=2

если это слишком упрощенно, см. эти инструкции .


2
Это работает ТОЛЬКО с устройствами, которые используют реализацию WIFI от Texas Instruments, и НЕ работает без рута и не работает на всех устройствах.
Кевин Паркер

7

Поддержка одноранговых сетей Wi-Fi доступна с уровня API 14 .


2
Просто обратите внимание, что для WiFi P2P API загружено несколько ошибок. 25397 26418 26483
Calvin

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

4

Может сработать использование JmDNS на Android: http://jmdns.sourceforge.net/

Есть тонн из ZeroConf с поддержкой машин там, так что это позволило бы открытие с более , чем просто Android устройств.


1
Хотя эта ссылка очень полезна, она вообще не отвечает на вопрос. ZeroConf DNS! = Ad Hoc беспроводной.
Кевин Паркер


3

Вы можете использовать платформу Alljoyn для однорангового подключения в Android. Он основан на сети Ad-hoc, а также на открытом исходном коде.


пример трудно понять @Selva Я уже анализировал исходный код alljoyn там.
gumuruh 06

2

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


концепция хороша, но кода там нет ... @jaxvy
gumuruh

1

Да, но:
1. Получите root-права на свое устройство (если у вас есть Nexus S, как у меня, см. Это )
2. Установите корневой проводник (поиск на рынке)
3. Найдите соответствующий файл wpa_supplcant и замените (и сделайте резервную копию) оригинал, как показано на эта тема

Выше было протестировано на моем Nexus S I9023 android 2.3.6


ну, это мило @kreker ... чтобы вы могли использовать одноранговую сеть Wi-Fi с помощью Android 2.3? хорошо! Не могли бы вы поделиться с нами учебником?
gumuruh

@gumuruh, мой ответ - учебник
kreker

0

В дополнение к ответу Тельмо Маркеса: я использую для этого виртуальный маршрутизатор .

Как и Connectify, он создает точку доступа на вашем компьютере с Windows 8, Windows 7 или 2008 R2, но с открытым исходным кодом.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.