android 中判斷WiFi是否可用的可靠方法 ,android 是否聯網


http://alex-yang-xiansoftware-com.iteye.com/blog/619841

 

 

在一些程序中,需要從網上下載數據,或者通過其他方式對網絡產生流量,當wifi不可用時應該提示用戶wifi已經不可用了,是否繼續,因為如果wifi掉了,那么程序可能采用3G卡或其他的收費的渠道使用網絡,會導在不知情時產生大量的上網費用。通過查看android的api可使用下列方法進行判斷:

Java代碼 復制代碼  收藏代碼
  1. public static boolean isWiFiActive(Context inContext) {   
  2.         Context context = inContext.getApplicationContext();   
  3.         WifiManager wifiManager = (WifiManager) context   
  4.                 .getSystemService(Context.WIFI_SERVICE);   
  5.         return wifiManager.isWifiEnabled();   
  6.     }  

 

在模擬器上使用這個方法時,可以正確判斷wifi是否可用,但是在真機上就判斷不出來。wifi是斷開的,但是返回的結果true,造成wifi判斷不准確。經過嘗試可使用如下的方法判斷方能正確:

Java代碼 復制代碼  收藏代碼
  1. public static boolean isWiFiActive(Context inContext) {   
  2.         Context context = inContext.getApplicationContext();   
  3.         ConnectivityManager connectivity = (ConnectivityManager) context   
  4.                 .getSystemService(Context.CONNECTIVITY_SERVICE);   
  5.         if (connectivity != null) {   
  6.             NetworkInfo[] info = connectivity.getAllNetworkInfo();   
  7.             if (info != null) {   
  8.                 for (int i = 0; i < info.length; i++) {   
  9.                     if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {   
  10.                         return true;   
  11.                     }   
  12.                 }   
  13.             }   
  14.         }   
  15.         return false;   
  16.     }  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM