两个安卓设备是否可以通过WiFi交换信息?

7

我目前正在创建一款Android移动设备应用程序,该应用程序应能够通过本地手段(如WiFi和蓝牙)发送和接收消息。在对此进行研究后,我发现Android没有本地的WiFi Ad Hoc功能,唯一实现它的方法是通过Root您的设备并修补wpa_suplicant以及其他类似方法,而这些方法并不适用于每个设备。

我想要实现的概述:

一款Android应用程序,可以扫描附近的设备并尝试自动连接到它们。如果另一个设备也安装了此应用程序,则会自动接受任何收到的连接请求,并在建立连接后发送回一条消息,以确保它已安装此应用程序,以便两者可以开始自动交换消息,用户不必在实时中允许/拒绝任何发送/接收。

我的问题是:

  1. 是否有一种方法可以在两个Android设备之间通过WiFi发送消息而无需使用互联网?
  2. 由于Ad Hoc不受支持,是否有任何替代方法?
  3. 如果问题2的答案是否定的,那么是否可能使其中一个设备成为访问点,以便另一个设备可以连接到它,反之亦然。
  4. 至于蓝牙,是否可能跳过或自动化传入连接的允许/拒绝弹出窗口和配对过程?

如果您能回答这些问题并/或提供任何建议,我将不胜感激。


3
使用WiFi是绝对必要的吗?我问这个问题是因为使用蓝牙非常容易:http://developer.android.com/resources/samples/BluetoothChat/index.html - Shlublu
2
我正准备从这里粘贴我的答案,但后来意识到OP是同一个人! :) - Atul Goyal
哈哈,Atul,你在这些网站上非常活跃 :) ,显然我把我的问题从Android爱好者社区转发到这里,以便能够得到更多的建议。 - Miky
@Shlublue 谢谢你的建议,尽管我已经修改了这个例子,但它仍然需要手动配对设备和接受连接。我正在寻找自动化这个过程的方法。 - Miky
1个回答

4

在Android 4.0中,您将能够使用WiFi Direct(P2P)在无需路由器/接入点的情况下,在两个设备之间通过WiFi进行通信。

否则,我认为您无法通过WiFi实现此目标(蓝牙将是下一个最佳选择)。自2.2以来,您可以设置手机作为WiFi接入点(用于连接设备的网络连接),但在此期间,WiFi硬件不可供正常使用。如果您有三个设备,则可以使用它(一个AP,两个设备连接到它)。

这是为了建立持续连接还是一次性小传输?例如,您可以使用NFC传输URL(Android Beam将此类型的共享集成到Android 4.0中,但也可以在2.3中实现它)。


NFC是如何工作的?它是通过蓝牙还是其他协议实现的? - Miky
1
它使用无线电波,在非常短的距离内,并且(我认为)采用自己的标准和协议。 - FunkTheMonk
谢谢,我的手机都不是安卓4.0及以上版本并且没有NFC功能,所以我暂时会继续使用蓝牙。 - Miky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接