我正在嘗試創建一個帶有3臺平板電腦的WI-FI Direct網絡。我想運行WiFi-Direct作爲後臺服務,將一臺設備設置爲自主GO。有人可以告訴我這怎麼可以在Android中完成?還有人請告訴我,我們如何設置專用的SSID和密碼,以便每當新設備添加到此網絡時,他們都可以在應用程序啓動期間搜索特定的ssid和密碼以建立連接。如何使用專用的ssid和密碼短語在Android中爲Wifi Direct創建自主GO?
我使用的是Android API等級18對我的發展...
在此先感謝...
我正在嘗試創建一個帶有3臺平板電腦的WI-FI Direct網絡。我想運行WiFi-Direct作爲後臺服務,將一臺設備設置爲自主GO。有人可以告訴我這怎麼可以在Android中完成?還有人請告訴我,我們如何設置專用的SSID和密碼,以便每當新設備添加到此網絡時,他們都可以在應用程序啓動期間搜索特定的ssid和密碼以建立連接。如何使用專用的ssid和密碼短語在Android中爲Wifi Direct創建自主GO?
我使用的是Android API等級18對我的發展...
在此先感謝...
這是一個獨立的集團用戶是如何使用,即下面的代碼,你可以故意設置一個創建設備wifi直連網絡作爲一個集團的所有者
manager.createGroup(channel,new WifiP2pManager.ActionListener()
{
@Override
public void onSuccess()
{
Toast.makeText(WiFiDirectActivity.this, "Group Created",Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int reason)
{}
});
您可以像按鈕任何情況下使用此代碼點擊等
通常,羣組擁有者由WiFi Direct協議決定。 但是,您可以使用配置類強制它。
final WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress=myDeviceAddr;
config.wps.setup = WpsInfo.PBC;
config.groupOwnerIntent =15;
在這種情況下,我認爲我在說,15是指最有可能成爲GO是正確的,你如果你希望該設備是GO設置此爲零。 此外,這可能是你可以設置引腳等看看WpsInfo。 此配置信息然後傳遞到您的連接調用。
mManager.connect(mChannel, config, new WifiP2pManager.ActionListener().
希望這會有所幫助。
你的迴應幾乎是正確的。但0最不可能成爲GO,最不可能成爲15。 http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pConfig.html#groupOwnerIntent –
Bluemoon10幾乎是正確的。我還不能評論,因爲我需要50點聲望:/。 config.groupOwnerIntent的範圍是1-15,最高意圖是組所有者。 如果2個設備試圖連接兩個GO意圖== 15,則連接調用將失敗。如果GO意圖聯繫低於15,那麼這些設備就決定一個聯絡中斷位並達成一致。所以如果你想讓一個設備成爲羣組所有者,你必須確保它是唯一試圖成爲的羣體。您可以通過服務發現來完成此任務,即如果有服務正在運行,您的GO意圖將設置爲具有服務的設備上的15和連接設備上的1。只有一個設備需要調用連接來啓動連接。
鏈接服務發現教程:http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html
要創建自主組你可以調用從你的經理createGroup()
方法。爲了設置SSID和口令您必須調用WifiP2pGroup 類的隱藏方法setPassphrase和setNetworkName。
爲了達到這個目的,你使用java反射。試試下面的例子。我們假設WifiP2pGroup
將您當前的對象組分組。
方法
setPassPhraseMethod=group.getClass().getMethod("setPassphrase", new Class[ {String.class});
,現在你調用方法:
setPassPhraseMethod.invoke(group, "yourNewPassPrhase");
希望這是有幫助的。
檢查源代碼並自己對其進行測試,這將改變內部成員,但它不會對該組本身。 – Jared
@Jared測試結果是什麼? –
有人請回答這個問題。即使我想知道如何做到這一點......我試圖在android中創建永久wifi直接組,當我有一個設備將永遠是組所有者。我試圖創建一個帶有5個設備的p2p組,其中一個設備始終作爲組所有者。第一次,我可以創建一個組,但是在隨後的連接中,我希望組可以使用可用的設備和先前的組所有者作爲當前組所有者。我們如何在android中做到這一點?請幫忙... – user2644440