2012-07-16 209 views
1

我找到了可以更改的系統設置列表以及我無法更改的設置(安全設置),但啓用/禁用Wifi-Direct(ICS)都不在其中。 當我啓動我的應用程序時,如何自動啓用Wi-Fi Direct?自動更改Wi-Fi Direct設置

回答

1

JB引入了併發的概念,這意味着只要wifi處於打開狀態,應用程序就不必直接打開wifi。

對於ICS,最好將用戶帶到無線設置以允許他打開它。

-1

您是否試過使用WiFi manager? 你應該能夠切換它像這樣的活動中:

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
if (!wifi.isWifiEnabled()){ 
    wifi.setWifiEnabled(true); 
} 

這應該打開WIFI,但並不能保證一個具有WiFi連接!您也可以使用WifiManager尋找WifiInfo

WifiInfo wifiInfo = wifi.getConnectionInfo(); 

或ping到無線接入點與

if (wifi.pingSupplicant()){ 
    //at least connected to a network 
} 
+3

我想打開Wi-Di Direct(P2P),而不是Wi-Fi。 – 2012-07-16 21:40:58

3

不幸的是,做到這一點不公開的方式。 ICS和JB中的Settings應用程序在管理器類上使用隱藏方法將服務切換爲啓用/禁用。

  • 在ICS中,使用了WifiP2PManager.enableP2P()和WifiP2PManager.disableP2P()兩種隱藏方法。
  • 在JB中,使用了NsdManager.setEnabled()。

所以這是可能的,因爲方法確實存在於這些類。但是,由於這種差異,您將不得不創建特定於版本的反射代碼,這些代碼幾乎肯定會在以後的版本中崩潰,以便直接從應用程序提供功能。

更好的解決方案是檢查服務是否啓用,並向用戶顯示一個對話框,直接將它們帶到「無線設置」頁面以便自己啓用WiFi Direct。