WiFi / Mac / Windows和Android之间的直接通信

是否可以让Android(> 4.0)设备与Mac OS或Windows设备build立WiFi-Direct连接?

根据Wifi-Direct Docs ,协议允许:

Android 4.0(API级别14)或更高版本的设备与适当的硬件通过Wi-Fi直接相互连接

Google看起来并不像Google通过API提供这种功能。 虽然WiFi-Direct不是专有协议,可以在任何平台上实现。 在试图让Wifi-Direct在Windows下工作的人们的网站上有几篇文章:

所有你需要的是使用java.net.Socket。 取决于建立直接联系是什么意思。 TCP连接在目标设备(Windows或Mac)上由serverSocket打开监听套接字时建立。 在其他设备上,您可以使用带目标地址的套接字。 当然,windows或mac box会显式地在防火墙上打开这个端口。

我想你真正需要知道的是如何获得目标计算机的名称或如何发现本地网络上的计算机。 不幸的是,它不依赖于我认为的Android版本。 你应该检查http://en.wikipedia.org/wiki/Zero_configuration_networking关于一些提示。 我担心有可能需要打开Android上的特权端口的问题,因为通常你必须是根。 这将需要扎根android。

当然,你应该指定你打算用什么直接连接和你需要什么软件。 如果两端都有你的应用程序,你可以在android上打开任何没有分配和非特权的端口。 使用UDP定期广播Android设备的名称(可以请求用户输入他的设备的名称)。 使用多播发送请求,并以相同的方式接收回复。 多播发送和接收将需要您的应用程序在Android和Windows和Mac上也。 现在,您可以从多播应用程序中读取它是什么类型的机器,以及它打开的本地端口是否可以直接连接。 从udp消息的来源你知道在哪里连接。

你可以使用一些框架来加快速度。 所有这些都需要关于网络的一些知识,但是我不知道更简单和工作良好的解决方案。 除非您提供有关您的直接连接的详细信息。