package mark.zeng;

import java.util.List;

import android.content.Context;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;

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;
}

更多相关文章

  1. android 将图片转换成二进制,再讲二进制转换成图片 可用于编码加
  2. Android连接网络
  3. android 登录前检查网络状态
  4. android MediaPlayer SurfaceView 网络视频播放器
  5. Android连接网络问题
  6. Android实用视图动画及工具系列之四:多状态CheckBox,可设置大小尺
  7. (Android实战系统二)Android网络互动传输方案选择和实现
  8. android中图片的三级cache策略(内存、文件、网络)之三:文件缓存策略
  9. SQLite在android 的一些用法与Cursor的体会

随机推荐

  1. 一个android工程的运行过程
  2. Android(安卓)file类使用详解-SDcard
  3. Android布局中的常用属性小结
  4. Android百度地图(六):百度地图POI检索,行
  5. android:paddingLeft与android:layout_ma
  6. android 使用Intent传递数据之全局变量传
  7. Android串口通信:串口读写实例
  8. 预防Android内存泄露
  9. 登录时旋转等待效果
  10. @+id/android:list"和"@android:id/list"