Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程判斷網絡連接是否可用的方法

Android編程判斷網絡連接是否可用的方法

編輯:關於Android編程

本文實例講述了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved