2012-07-30 34 views
9

是否可以让Android(> 4.0)设备与Mac OS或Windows设备建立WiFi-Direct连接?Mac/Windows和Android之间的WiFi-Direct通信

+0

[广播消息从桌面PC到使用WIFI连接的Android设备]的可能重复(http://stackoverflow.com/questions/6757665/broadcast-message-from-desktop-pc-to-android-device-using- wifi连接) – slayton 2012-07-30 14:07:35

+0

不是WiFi Direct,但是完美的与Android分享内容:[通过HTTP共享| F-Droid - 免费和开放源代码的Android应用程序库](https://f-droid.org/en/packages/com.MarcosDiez.shareviahttp/) – eapo 2018-01-06 05:43:09

回答

5

按照Wifi-Direct Docs协议允许:

的Android 4.0(API 14级)或与适当的硬件版本的装置,以通过Wi-Fi直接连接到彼此

一点也没有看起来谷歌通过API提供了这种功能。尽管WiFi-Direct不是专有协议,可以在任何平台上实施。还有人试图让WiFi直连在网络上的几个帖子窗户下工作:

-6

所有你需要的是使用java.net.Socket。取决于建立直接联系意味着什么。 TCP连接在目标设备(Windows或Mac)上由ServerSocket打开侦听套接字时建立。在其他设备上,您可以使用带目标地址的套接字。当然,Windows或Mac机器必须在防火墙中打开该端口。

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

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

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

+0

套接字必须建立在现有的WiFi-Direct连接上。这就是我所要求的,而不是套接字连接。 – 2012-07-30 14:25:50

+0

OP不询问如何在已建立的网络上设置类似TCP的连接。相反,OP想知道如何使用WiFi-Direct协议在计算机和Android设备之间建立新的网络连接。 – slayton 2012-07-30 14:28:23