package lizhen.network;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;public class NetworkState {private Context context;private ConnectivityManager connectivityManager; //網絡連接管理private State mobile; //移動網絡狀態private State wifi; //WIFI網絡狀態public NetworkState(Context context) {this.context = context;init();}/** * 初始化 * */private void init() {connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);}/** * 當前網絡是否已連接 * @return true 網絡已連接<br />false 其它 * */public boolean isConnected() {boolean result = false;mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();result = (mobile == State.CONNECTED || wifi == State.CONNECTED);return result;}/** * 當前網絡是否正在連接 * @return true 網絡正在連接<br />false 其它 * */public boolean isConnecting() {boolean result = false;mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();result = (mobile == State.CONNECTING || wifi == State.CONNECTING);return result;}}

通过调用Context的方法getSystemService(Context.CONNECTIVITY_SERVICE)可以返回ConnectivityManager实例,使用ConnectivityManager,我们可以获取当前网络的状态。

以上代码作为示例,检查当前网络(包括移动网络和WIFI网络)是否已连接或是否正在连接。

注:网络状态有如下6种(定义在NetworkInfo.State中)

  1. CONNECTED 已连接
  2. CONNECTIONG 正在连接
  3. DISCONNETED 已断开
  4. DISCONNETING 正在断开
  5. SUSPENDED 已挂起
  6. UNKNOW 未知

更多相关文章

  1. android取得当前网络连接状态
  2. android判断是否连接网络
  3. Android 网络操作(上传下载等)
  4. 【android】监听网络变化连续多个广播的问题解决
  5. android之activity生命周期示例
  6. Android开发学习笔记整理(16)-网络请求
  7. android 网络检测

随机推荐

  1. android布局属性详解
  2. 修改标题栏的高度
  3. Android(安卓)SDK更新以及ADT更新出现问
  4. My Android(安卓)Camera Notes
  5. android:网路检测
  6. minSdkVersion各个版本号对应android版本
  7. 一个android参考网站,工具+源码
  8. centos下安装adb环境
  9. Android通过PHP连接MySQL(传值查询)
  10. RelativeLayout常用属性介绍