2013-08-16 60 views
0

使用ConnectivityManager,我可以檢查用戶是否連接到WiFi。如果是,我的應用程序開始下載。在將數據寫入本地存儲之後,我再次檢查用戶是否連接到WiFi。如果沒有,我停止下載。當通過WiFi下載數據時,如何知道我使用Wifi連接

現在,我想知道的是.. 我如何確保HttpURLConnection是通過WiFi?

另一個特點是用戶對下載自由的地方。用戶允許應用程序通過WiFi或通過網絡下載。

假設用戶啓用了WiFi的情況。該應用程序檢查WiFi是否可用並開始下載。之後,用戶關閉WiFi或移出信號範圍。 然後連接會發生什麼?它切換到使用網絡嗎?

另外,如何確保HttpURLConnection是通過網絡製作的?

總的來說,我只是需要避免一個令人討厭的情況,用戶最終會花很多錢無意中下載。這不是一個非常關鍵的應用程序,我這樣做只是爲了實踐

+1

這不是設備設置嗎?首選WiFi與3G優先? –

+0

@SotiriosDelimanolis我不知道。我是新手。閱讀問題的最後一行。建議歡迎。 –

+0

這裏有一些東西:http://stackoverflow.com/questions/11343249/android-check-3g-or-wifi-network-is-on-or-available-or-not-on-android-device –

回答

1
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
NetworkInfo info = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

更多信息可以從NetworkInfo提取。只需檢查this reference

你需要這個權限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

補全:我不知道這是否是一個Android默認或設備配置,但​​只要有一個建立了無線網絡連接,3G將自動被禁用。我在幾臺設備上測試過,它們都有這種行爲。