Android 开发工具类 18_NetWorkUtil

检测网络的一个工具包:

1、网络是否可用;

2、判断是否有网络连接;

3、判断 WIFI 网络是否可用;

4、判断 MOBILE 网络是否可用;

5、获取当前网络连接的类型信息;

6、获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap 网络3:net网络;

  1 import android.content.Context;
  2 import android.net.ConnectivityManager;
  3 import android.net.NetworkInfo;
  4
  5 /**
  6  * @Title NetWorkUtil
  7  * @Description 是检测网络的一个工具包
  8  * @author 淡定
  9  */
 10 public class NetWorkUtil {
 11
 12     public static enum NetType {
 13         WIFI, CMNET, CMWAP, NoneNet
 14     }
 15
 16     /**
 17      * 网络是否可用
 18      *
 19      * @param context
 20      * @return
 21      */
 22     public static boolean isNetworkAvailable(Context context) {
 23
 24         ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 25         NetworkInfo[] info = mgr.getAllNetworkInfo();
 26         if (info != null) {
 27             for (int i = 0; i < info.length; i++) {
 28                 if (info[i].getState() == NetworkInfo.State.CONNECTED) {
 29                     return true;
 30                 }
 31             }
 32         }
 33         return false;
 34     }
 35
 36     /**
 37      * 判断是否有网络连接
 38      *
 39      * @param context
 40      * @return
 41      */
 42     public static boolean isNetworkConnected(Context context) {
 43         if (context != null) {
 44             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 45             NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
 46             if (mNetworkInfo != null) {
 47                 return mNetworkInfo.isAvailable();
 48             }
 49         }
 50         return false;
 51     }
 52
 53     /**
 54      * 判断WIFI网络是否可用
 55      *
 56      * @param context
 57      * @return
 58      */
 59     public static boolean isWifiConnected(Context context) {
 60
 61         if (context != null) {
 62             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 63             NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
 64             if (mWiFiNetworkInfo != null) {
 65                 return mWiFiNetworkInfo.isAvailable();
 66             }
 67         }
 68         return false;
 69     }
 70
 71     /**
 72      * 判断 MOBILE 网络是否可用
 73      *
 74      * @param context
 75      * @return
 76      */
 77     public static boolean isMobileConnected(Context context) {
 78         if (context != null) {
 79             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 80             NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
 81             if (mMobileNetworkInfo != null) {
 82                 return mMobileNetworkInfo.isAvailable();
 83             }
 84         }
 85         return false;
 86     }
 87
 88     /**
 89      * 获取当前网络连接的类型信息
 90      *
 91      * @param context
 92      * @return
 93      */
 94     public static int getConnectedType(Context context) {
 95
 96         if (context != null) {
 97             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 98             NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
 99             if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
100                 return mNetworkInfo.getType();
101             }
102         }
103         return -1;
104     }
105
106     /**
107      * 获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap 网络3:net网络
108      *
109      * @param context
110      * @return
111      */
112     public static NetType getAPNType(Context context) {
113
114         ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
115         NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
116         if (networkInfo == null) {
117             return NetType.NoneNet;
118         }
119         int nType = networkInfo.getType();
120
121         if (nType == ConnectivityManager.TYPE_MOBILE) {
122             if (networkInfo.getExtraInfo().toLowerCase().equals("cmnet")) {
123                 return NetType.CMNET;
124             } else {
125                 return NetType.CMWAP;
126             }
127         } else if (nType == ConnectivityManager.TYPE_WIFI) {
128             return NetType.WIFI;
129         }
130         return NetType.NoneNet;
131
132     }
133 }
时间: 2024-11-10 08:12:16

Android 开发工具类 18_NetWorkUtil的相关文章

android开发工具类总结(一)

一.日志工具类 Log.java 1 public class L 2 { 3 private L() 4 { 5 /* 不可被实例化 */ 6 throw new UnsupportedOperationException("Cannot be instantiated!"); 7 } 8 // 是否需要打印bug,可以在application的onCreate函数里面初始化 9 public static boolean isDebug = true; 10 private sta

Android 开发工具类 13_ SaxService

网络 xml 解析方式 1 package com.example.dashu_saxxml; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.HashMap; 6 import java.util.List; 7 8 import javax.xml.parsers.SAXParser; 9 import javax.xml.parsers.SAXParserFactory; 10

Android 开发工具类 35_PatchUtils

增量更新工具类[https://github.com/cundong/SmartAppUpdates] 1 import java.io.File; 2 3 import android.app.Activity; 4 import android.app.ProgressDialog; 5 import android.content.Context; 6 import android.content.Intent; 7 import android.net.Uri; 8 import and

Android开发工具类之DownloadManagerPro

这个工具类就是Android系统下载管理DownloadManager的一个增强类,提供了一些增强方法.或许大家不太了解这个安卓系统自带的DownloadManager这个类,我先做一个简单介绍吧.DownloadManager是系统开放给第三方应用使用的类,包含两个静态内部类DownloadManager.Query和DownloadManager.Request. DownloadManager.Request用来请求一个下载,DownloadManager.Query用来查询下载信息.用d

Android 开发工具类 03_HttpUtils

Http 请求的工具类: 1.异步的 Get 请求: 2.异步的 Post 请求: 3.Get 请求,获得返回数据: 4.向指定 URL 发送 POST方法的请求. 1 import java.io.BufferedReader; 2 import java.io.ByteArrayOutputStream; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.InputStreamReader

Android 开发工具类 19_NetworkStateReceiver

检测网络状态改变类: 1.注册网络状态广播: 2.检查网络状态: 3.注销网络状态广播: 4.获取当前网络状态,true为网络连接成功,否则网络连接失败: 5.注册网络连接观察者: 6.注销网络连接观察者. 1 import java.util.ArrayList; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 i

Android 开发工具类 10_Toast 统一管理类

Toast 统一管理类: 1.短时间显示Toast: 2.长时间显示 Toast: 3.自定义显示 Toast 时间. 1 import android.content.Context; 2 import android.widget.Toast; 3 4 // Toast 统一管理类 5 public class T 6 { 7 8 private T() 9 { 10 /* cannot be instantiated */ 11 throw new UnsupportedOperation

Android 开发工具类 09_SPUtils

SharedPreferences 辅助类: 1.保存在手机里面的文件名: 2.保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法: 3.得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值: 4.移除某个 key 值已经对应的值: 5.清除所有数据: 6.查询某个 key 是否已经存在: 7.返回所有的键值对: 8.创建一个解决 SharedPreferencesCompat.apply 方法的一个兼容类: 1 import jav

Android 开发工具类 33_开机自运行

原理:该类派生自 BroadcastReceiver,重载方法 onReceive ,检测接收到的 Intent 是否符合 BOOT_COMPLETED,如果符合,则启动用户Activity. 1 import android.content.BroadcastReceiver; 2 import android.content.Context; 3 import android.content.Intent; 4 5 public class BootBroadcastReceiver ext