本文執行個體講述了Android編程判斷網路連接是否可用的方法。分享給大家供大家參考,具體如下:
為了提高使用者體驗,我們在開發 android 應用的過程需要連網擷取資料的時候我們首先要做的一步就是:
1.判斷當前手機是否開啟了網路
2.開啟了網路是否可以上網
然後再去執行連網邏輯,避免沒連網做不必要的工作!
通常情況下,我們是這樣判斷的
public static boolean isNetAvailable(Context context) { ConnectivityManager connectManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); return (connectManager.getActiveNetworkInfo() != null); }
但是這樣只完成了第一步,判斷網路是否開啟,
注意:開啟並不代表就可以上網,
觀察發現 NetworkInfo 有一個方法:
複製代碼 代碼如下:
NetworkInfo.isAvailable()
官方的解釋是
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程式設計有所協助。