關於如何檢測Android中的網絡連接有許多問題。 https://stackoverflow.com/a/4239019/90236提供了一個非常詳細的答案,並且https://stackoverflow.com/a/8548926/90236顯示了識別人們連接的網絡類型的方法。在Android中檢測有限的網絡連接?
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
這讓我們提醒用戶,如果它們是離線:
我們使用類似於像這些問題的答案代碼檢測網絡的連通性。但是,它不能幫助我們確定用戶是否具有有限的連接。有限的連接條件導致用戶投訴。這些包括:
用戶連接到家庭無線網絡,但有線調制解調器或互聯網服務不可用。
用戶在酒店或咖啡店併成功連接到wifi網絡,但網絡要求他們登錄或同意服務條款,才能獲得完整的網絡訪問權限。
在這兩種情況下,我們的isNetworkAvailable()測試都返回true。操作系統告訴我們我們已連接到網絡。但是,用戶沒有可用的Internet連接。
有沒有一種很好的方法來確定用戶具有完整的網絡連接?
我在考慮調用一個輕量級的Web服務來驗證它們的連接性,並警告用戶如果應用程序沒有從服務中獲得有效的返回。這是否過分矯枉過正?或讓其他人不得不求助於類似的技術?
我喜歡「justrightkill」的想法,但它不具有相同的戒指給它 - http://www.youtube.com/watch?v=YjETcbEDmoQ –
哈哈很搞笑..... –