2013-01-09 17 views
3

我開始編寫Android應用程序來執行我的Web服務器的後臺監控。在啓用WiFi的情況下,問題在於,默認情況下會將流量引導至該流量,我希望始終使用3G進行HTTP請求以檢查外部可用性。我知道我可以使用此代碼以編程方式禁用無線網絡:啓用WiFi時通過互聯網進行的Android強制流量

WifiManager wifiManager = (WifiManager)getBaseContext().getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(false); 

但因爲它會在後臺運行這是一個有點笨拙,會中斷其它操作通過WiFi而檢查正在進行中。看看Socket Documentation我看不到任何明顯的方法來實現這一點。我想知道是否有任何支持的方式在無根的手機上實現此目的?我完全控制了服務器,因此協議並不一定是HTTP。

回答

1

這似乎是這將是一個非常危險的特性爲Android允許。

  • 如何使用計量3G計劃的用戶?他們覺得如果一個應用程序強迫他們使用3G連接,然後竊聽出來或什麼東西,並吹走了他們的整個數據配額,甚至沒有他們知道它(認爲他們在WiFi上)?

  • 此外,一次不能有多個活動網絡。

可能Resolutions-

  • 你可以做的是強制禁用WiFi網絡,當應用程序處於活動狀態,然後再啓用它。

  • 此外,請嘗試搜索名爲requestRouteToHost的方法。它允許您指定網絡類型和要查找路由的主機。

+0

謝謝我沒有真正想過爲什麼允許應用程序執行此操作是一個壞主意。相反,我可以做的是添加一個選項,只在手機鎖定時禁用WiFi。如果我作爲公開應用發佈,我會默認該選項關閉,並在打開時添加關於流量的警告。 – PeterJ