本文實例講述了Android編程判斷網絡連接是否可用的方法。分享給大家供大家參考,具體如下:
為了提高用戶體驗,我們在開發 android 應用的過程需要聯網獲取數據的時候我們首先要做的一步就是:
1.判斷當前手機是否打開了網絡
2.打開了網絡是否可以上網
然后再去執行聯網邏輯,避免沒聯網做不必要的工作!
通常情況下,我們是這樣判斷的
public static boolean isNetAvailable(Context context) { ConnectivityManager connectManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); return (connectManager.getActiveNetworkInfo() != null); }
但是這樣只完成了第一步,判斷網絡是否打開,
注意:打開并不代表就可以上網,
觀察發現 NetworkInfo 有一個方法:
官方的解釋是
Indicates whether network connectivity is possible. A network is unavailable when a persistent or semi-persistent condition prevents the possibility of connecting to that network. Examples include
The device is out of the coverage area for any network of this type.
The device is on a network other than the home network (i.e., roaming), and data roaming has been disabled.
The device's radio is turned off, e.g., because airplane mode is enabled.
Returns:
true if the network is available, false otherwise
他列舉了幾種網絡已連接但不可以上網的情況,
所以我們這樣改改就好了:
public static boolean isNetAvailable(Context context) { ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manager.getActiveNetworkInfo(); return (info != null && info.isAvailable());}
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選