2013-06-26 60 views
0

我想在連接兩個Android設備時要求輸入PIN碼,以確保他們正在互相通話。如何在Android上設置帶有PIN碼的Wi-Fi Direct

Android SDK 17中有一個名爲「WiFiDirectDemo」的示例項目。它建立了一個Wi-Fi Direct連接,但它缺少PIN身份驗證。

  1. 我不知道如何在周圍線71類DeviceDetailFragment指定WiFiP2pConfig.wps.setup難道我指定當前設備上的動作(我想顯示自動生成的四位數PIN) , 一世。即config.wps.setup = WPSInfo.DISPLAY,或者我應該指定對等的動作,即i。即config.wps.setup = WPSInfo.KEYPAD?
  2. 如何檢測對方的連接請求?我想我可以聽一些東西,比如說。 G。在BroadcastReceiver中,但我找不到它。

我是一名經驗豐富的iOS開發人員,但Android對我來說很新,也許答案對您來說顯而易見。謝謝你的幫助。

回答

1

你需要指定它發送連接請求設備上的行動...和腳,我認爲這應該

p2pconfig.wps.setup = WpsInfo.DISPLAY; p2pconfig.wps.pin =「0000」; 連接時,PIN會顯示在本地設備上,並要求用戶在遠程設備上輸入相同的PIN;一旦輸入PIN碼,連接成功完成。

選中此https://groups.google.com/forum/#!topic/android-platform/hN5WfXRzXpI閱讀5後

+1

感謝您的回覆。我試着將這兩行添加到演示應用程序,但它仍然沒有提示/顯示對話框連接。正如我從你的解釋和鏈接的論壇入口理解的,沒有別的事可做。 – Paul

+0

我發現了這個問題。顯然,將設備配對一次就足夠了(在我的情況下隱含)。只剩下問題了:如何刪除配對?如果你知道它很好,否則我會挖掘文檔。 :) – Paul

+1

如果你想刪除一個組,我認爲在wifip2pmanager中有一個叫做remove group的函數,它以通信發生的通道爲參數,所以如果你從提供正確通道的組所有者設備調用這個函數,組應該被終止 – user2458228

1

p2pconfig.wps.setup = WpsInfo.KEYPAD(不指定p2pconfig.wps.pin)工作正常me.It從顯示設備上動態生成的密鑰我們正嘗試連接到其他設備上。

在這種情況下,您不需要監聽任何b'cast接收器來檢測連接.wpa_supplicant會照顧它,並提示您輸入pin。對於清晰的圖片,請查看logcat(I在連接過程中,使用ADT(sdk + eclipse)的adb查看wpa_supplicant的logcat)。