Android-验证网络是否可用


ConnectivityManager主要管理和网络连接相关的操作,NetworkInfo类包含了对wifi和mobile两种网络模式连接的详细描述,通过其getState()方法获取的State对象则代表着连接成功与否等状态。

CONNECTED

Detailed state Coarse-grained state
IDLE DISCONNECTED
SCANNING CONNECTING
CONNECTING CONNECTING
AUTHENTICATING CONNECTING
CONNECTED
DISCONNECTING DISCONNECTING
DISCONNECTED DISCONNECTED
UNAVAILABLE DISCONNECTED
FAILED DISCONNECTED
       State state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();  
 if(State.CONNECTED==state){  
  Log.i("TAG", "GPRS网络已连接");  
 }  
   
 state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();  
 if(State.CONNECTED==state){  
  Log.i("TAG“, "WIFI网络已连接");  
 } 

  1. //判断网络是否可用   
  2.   
  3. public static boolean isNetworkAvaiable(Context context){  
  4.     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);  
  5.     NetworkInfo info = connectivityManager.getActiveNetworkInfo(); // 获取代表联网状态的NetWorkInfo对象     
  6.     return (info != null && info.isConnected());  
  7. }  
  8.   
  9. //判断WIFI是否可用   
  10.   
  11. public static boolean isWifiActive(Context context){  
  12.       
  13.     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);  
  14.     NetworkInfo[] info = connectivityManager.getAllNetworkInfo();  
  15.     if(info!=null){  
  16.         for(int i=0;i<info.length;i++){  
  17.             //   
  18.             if(info[i].getTypeName().equals(ConnectivityManager.TYPE_WIFI)&& info[i].isConnected())  
  19.                 return true;  
  20.         }  
  21.     }  
  22.     return false;  
  23. }  

ConnectivityManager.TYPE_WIFI 表示wifi连接

ConnectivityManager.TYPE_MOBILE 表示3G连接

网络设置Intent:

new Intent(Android.provider.Settings.ACTION_WIRELESS_SETTINGS)   // 跳转到无线网络设置界面 

new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS) // 跳转到无线wifi网络设置界面 


最后别忘了在mainifest文件中加上权限:

"<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>"

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

相关内容