2012-07-30 35 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