没有Wifi热点或Wifi Direct的Android广播/接收数据

时间:2015-03-02 21:58:02

标签: android wifi broadcast wifip2p wireless-connection

我的问题是,是否可以通过wifi广播在多个Android设备之间发送和接收数据,而无需建立p2p连接?

我们的教授要求我们设计一个无线网络系统,你在你的Android手机中广播一条消息,附近的其他Android手机接收它并再次广播,以便其他手机可以接收它,并继续这样。通过这种方式,例如,当有人在教室或咖啡馆中写入消息时,每个人都能够接收它并再次广播它。 (就像一个adhoc网络系统)。虽然我的教授认为它可以实现,但我没有在网上找到像这种Android网络系统那样的东西。所以我的问题又是可以做那样的事情吗?

任何有用的线索和参考将不胜感激。

编辑:我不得不更改问题的标题。

我找不到合适的解决方案,所以到目前为止我尝试了以下方法:我使用Wifi热点建立了一个UDP消息传递应用程序(它适用于多个客户端)。打开热点的电话是服务器,连接它的其他人是客户端。然后,我决定将这个系统变成一个类似adhoc的系统,其中会有多个热点,客户端会以循环顺序连接到它们,并充当这些服务器之间的桥梁。(每一秒,它们将切换到其他热点,反之亦然。)因此,他们会将消息从一个网络传送到另一个网络。 (我知道这是非常低效的,并且容易出现时间延迟;但这是我到目前为止唯一提出的想法。)

当我告诉这个系统给我的教授时,他说这太复杂了,我只需要从设备向公共频道广播消息(不设置网络连接),其他设备会听这个广播频道(没有连接到网络系统),接收消息并将其自己的消息与收到的消息一起再次广播到该频道,正如我在问题正文中所描述的那样。 (他从未提到热点,Wifi直接等等)他甚至告诉我,我唯一需要做的就是更简单地思考并使用802.11的属性。但是,我认为设置这样的无线系统并不容易,至少对于不支持ad hoc系统的Android而言。所以任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:5)

上周发布的Google Play服务中的Nearby Connections API使用WiFi多播:https://developers.google.com/games/services/android/nearby

适用于已在同一WiFi网络上的设备。但是,它使用主机/客户端模型,不能使用WiFi直接连接或系留热点连接。

您还可以使用ICS的WiFi直接API:https://developer.android.com/guide/topics/connectivity/wifip2p.html 您可以通过WiFi直接将多个设备连接在一起,因此像@willis建议的那样启动UDP数据包似乎是要走的路

答案 1 :(得分:0)

可以实施。你知道飞机吗?同样,您甚至可以收到所有未发送给您的数据包,您甚至可以发送任何未发送的数据包。