码迷,mamicode.com
首页 > 移动开发 > 详细

network: Android 网络判断(wifi、3G与其他)

时间:2014-10-15 19:20:41      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:android   style   color   io   ar   for   sp   on   cti   

public class NetworkProber { 

/** 
* 网络是否可用 

* @param activity 
* @return 
*/ 
public static boolean isNetworkAvailable(Context context) { 
ConnectivityManager connectivity = (ConnectivityManager) context 
.getSystemService(Context.CONNECTIVITY_SERVICE); 
if (connectivity == null) { 
} else { 
NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
if (info != null) { 
for (int i = 0; i < info.length; i++) { 
if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
return true; 




return false; 


/** 
* Gps是否打开 

* @param context 
* @return 
*/ 
public static boolean isGpsEnabled(Context context) { 
LocationManager locationManager = ((LocationManager) context 
.getSystemService(Context.LOCATION_SERVICE)); 
List<String> accessibleProviders = locationManager.getProviders(true); 
return accessibleProviders != null && accessibleProviders.size() > 0; 


/** 
* wifi是否打开 
*/ 
public static boolean isWifiEnabled(Context context) { 
ConnectivityManager mgrConn = (ConnectivityManager) context 
.getSystemService(Context.CONNECTIVITY_SERVICE); 
TelephonyManager mgrTel = (TelephonyManager) context 
.getSystemService(Context.TELEPHONY_SERVICE); 
return ((mgrConn.getActiveNetworkInfo() != null && mgrConn 
.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel 
.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS); 


/** 
* 判断当前网络是否是wifi网络 
* if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网 

* @param context 
* @return boolean 
*/ 
public static boolean isWifi(Context context) { 
ConnectivityManager connectivityManager = (ConnectivityManager) context 
.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 
if (activeNetInfo != null 
&& activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) { 
return true; 

return false; 


/** 
* 判断当前网络是否是3G网络 

* @param context 
* @return boolean 
*/ 
public static boolean is3G(Context context) { 
ConnectivityManager connectivityManager = (ConnectivityManager) context 
.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 
if (activeNetInfo != null 
&& activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 
return true; 

return false; 


另外还有两个方法判断网络是否可用:

public static boolean isNetworkAvailable_00(Context context) { 
ConnectivityManager cm = ((ConnectivityManager) context 
.getSystemService(Context.CONNECTIVITY_SERVICE)); 
if (cm != null) { 
NetworkInfo info = cm.getActiveNetworkInfo(); 
if (info != null && info.isConnectedOrConnecting()) { 
return true; 


return false; 


public static boolean isNetworkAvailable_01(Context context) { 
ConnectivityManager cm = (ConnectivityManager) context 
.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo network = cm.getActiveNetworkInfo(); 
if (network != null) { 
return network.isAvailable(); 

return false; 

更加严谨的写法: 
public static boolean checkNet(Context context) { 

try { 
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
if (connectivity != null) { 

NetworkInfo info = connectivity.getActiveNetworkInfo(); 
if (info != null && info.isConnected()) { 

if (info.getState() == NetworkInfo.State.CONNECTED) { 
return true; 



} catch (Exception e) { 
return false; 

return false; 
}

network: Android 网络判断(wifi、3G与其他)

标签:android   style   color   io   ar   for   sp   on   cti   

原文地址:http://blog.csdn.net/tw19811220/article/details/40114183

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!