Android 可以做点对点的 ad-hoc 网络吗?

Posted

技术标签:

【中文标题】Android 可以做点对点的 ad-hoc 网络吗?【英文标题】:Can Android do peer-to-peer ad-hoc networking? 【发布时间】:2010-12-28 06:39:33 【问题描述】:

是否可以将 android 设置为 ad-hoc 点对点 wifi 模式?例如,我想让一部手机广播一条消息,并让网络中的所有对等方接收广播,而无需服务器。我想使用 wifi,因为蓝牙范围更有限。

【问题讨论】:

您是在谈论“Android 到 Android”还是“Android 到任何”(如 pc、mac、iphone 等)? @Doughy 如果您找到任何解决方案,请分享。 【参考方案1】:

这是您请求的功能的错误报告。

它的状态是“已审核”,但我认为它尚未实施。

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

【讨论】:

请对这个错误投赞成票,任何对 Android 上的 Ad Hoc 感兴趣的人 - 由于缺乏 ad hoc,我有一个更棘手的应用创意【参考方案2】:

虽然 Android 无法找到并连接到 ad-hoc 网络,但它肯定可以连接到接入点。因此,作为一种变通方法,您可以使用例如Connectify 将您的无线网卡变成一个接入点。

【讨论】:

还有其他可用的 Windows XP 兼容工具吗? 最佳答案!这工作迅速而完美。 Connectify 非常酷。 安装这个应用程序给了我蓝屏!【参考方案3】:

我和我的朋友目前正在我们的学士论文中开发一个实现 AODV 协议(适用于移动网络的多跳路由)的 java 库。最终的“产品”包括一种在多个 android 设备上创建/加入 adhoc 网络的简单方法,以及一个通过库发送和接收消息的接口。不幸的是,每种类型的手机(例如 hero、nexsus one...)都有一种依赖手机的方式来创建自组网络,因此目前我们只支持少数手机)。

这意味着一旦这个项目完成,拥有根手机的人可以通过在他们的 android 项目中简单地包含库 .jar 文件来实现他们的分布式应用程序(文件共享、游戏等)。

顺便说一句,都是开源的

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

【讨论】:

完全忘记了这篇文章,抱歉。如果有人有兴趣,我们今天刚刚提交了论文(用英文写的!),我很乐意分享信息。我的邮箱是 jradi88@gmail.com 我已经把源代码和文档(一份报告)上传到code.google.com/p/adhoc-on-android 有没有其他设备@RabieJradi 的出路? 如果你想支持其他设备,不幸的是,唯一的方法是实现所需的命令(取决于手机!)来设置和拆除 ad-hoc 网络并编译一个新的 C基于 startstopadhoc.c 的库(您需要修改的文件)。您可以在这里找到源代码:code.google.com/p/adhoc-on-android/source/browse/trunk/jni/… 如果幸运的话,您需要执行的命令可能与 Nexus One 的设置类似,因此您可能只需要使用现有的编译 C 库即可。 通过查看以下项目code.google.com/p/android-wifi-tether,我们基本上得到了帮助以找出设置所需的命令【参考方案4】:

您可以将您的 android 设备连接到已知的 ad-hoc 网络。

编辑/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

如果这太简单了,请参阅这些instructions。

【讨论】:

这仅适用于使用德州仪器 WIFI 实现的设备,并且在没有 root 的情况下无法使用,并且不适用于所有设备。【参考方案5】:

从API level 14 开始支持点对点 WiFi 网络。

【讨论】:

请注意,WiFi P2P API 加载了多个错误。 253972641826483 我认为它只适用于 Wifi 直连设备。由于它是目前仅在手机上提供的新硬件功能,因此我们无法使用它来连接笔记本电脑。【参考方案6】:

您的答案是 ICS 提供的 Wi-Fi direct。这是Android doc中的解释链接

【讨论】:

【参考方案7】:

在 Android 上使用 JmDNS 可能有效:http://jmdns.sourceforge.net/

那里有 台启用 zeroconf 的机器,因此这不仅可以使用 Android 设备进行发现。

【讨论】:

虽然这个链接很有用,但根本没有回答问题。 ZeroConf DNS != Ad Hoc 无线。【参考方案8】:

您可以使用Alljoyn 框架在Android 中实现点对点连接。它基于 Ad-hoc 网络,也是开源的。

【讨论】:

例子很难理解@Selva我已经分析了alljoyn的源代码。【参考方案9】:

我不认为它提供了多跳无线数据包路由环境。但是,您可以尝试集成一个简单的路由机制。只需查看Wi-Share 即可了解如何完成。

【讨论】:

这个概念很好,但代码不存在......@jaxvy【参考方案10】:

是的,但是: 1. 根您的设备(如果您有像我这样的 Nexus S,请参阅this) 2. 安装根资源管理器(在市场中搜索) 3.找到合适的wpa_supplcant文件并替换(和备份)原始文件,如this thread所示

以上是在我的 Nexus S I9023 android 2.3.6 上测试的

【讨论】:

嗯,这很好@kreker...所以你可以使用 wifi peer to peer 使用 android 2.3 吗?好的!可以给我们分享一下教程吗? @gumuruh 我的答案是教程【参考方案11】:

除了 Telmo Marques 回答:我为此使用 Virtual Router。

与 connectify 一样,它会在您的 Windows 8、Windows 7 或 2008 R2 机器上创建一个接入点,但它是开源的。

【讨论】:

以上是关于Android 可以做点对点的 ad-hoc 网络吗?的主要内容,如果未能解决你的问题,请参考以下文章

我要一份用java网络编程写的点对点的两人聊天程序(TCP和UDP)?

Android 用3G网络如何实现点对点通信?

比特币:一种点对点的电子现金系统

android 4.0.4怎么才能点对点连接

Android与windows如何通过互联网点对点传文件

BP神经网络