1.在MyApplication extends Application中添加如下代码:

//判断网络状态    public boolean isConnectInternet() {        ConnectivityManager conManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE );        NetworkInfo networkInfo = conManager.getActiveNetworkInfo();        if (networkInfo != null ){ // 注意,这个判断一定要的哦,要不然会出错            return networkInfo.isAvailable();        }        return false ;    }
//判断WIFI网络是否连接
<pre name="code" class="java">public boolean isWifiConnected(Context context) {       if (context != null) {           ConnectivityManager mConnectivityManager = (ConnectivityManager) context                   .getSystemService(Context.CONNECTIVITY_SERVICE);           NetworkInfo mWiFiNetworkInfo = mConnectivityManager                   .getNetworkInfo(ConnectivityManager.TYPE_WIFI);           if (mWiFiNetworkInfo != null) {               return mWiFiNetworkInfo.isAvailable();           }       }       return false;   }


  

//判断手机网络是否连接

public boolean isMobileConnected(Context context) {       if (context != null) {           ConnectivityManager mConnectivityManager = (ConnectivityManager) context                   .getSystemService(Context.CONNECTIVITY_SERVICE);           NetworkInfo mMobileNetworkInfo = mConnectivityManager                   .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);           if (mMobileNetworkInfo != null) {               return mMobileNetworkInfo.isAvailable();           }       }       return false;   }
//获取当前网络连接类型信息

public static int getConnectedType(Context context) {       if (context != null) {           ConnectivityManager mConnectivityManager = (ConnectivityManager) context                   .getSystemService(Context.CONNECTIVITY_SERVICE);           NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();           if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {               return mNetworkInfo.getType();           }       }       return -1;   }

2.在清单文件中添加如下权限:

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

在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,一般可以通过ConnectivityManager来完成该工作。

ConnectivityManager有四个主要任务:

1、监听手机网络状态(包括GPRS,WIFI, UMTS等)

2、手机状态发生改变时,发送广播

3、当一个网络连接失败时进行故障切换

如果只是判断网络连接状态进行处理,则可在相应的Activity中调用

Boolean isConnectioned=MyApplication.getInstance.isConnectInternet();
进行有无网络判断。


当我们要在程序中监听网络状态时,只要以下下几个步骤即可:

定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开来改变空间的外观

connectionReceiver = new BroadcastReceiver() {      @Override   public void onReceive(Context context, Intent intent) {    ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);    NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);    NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);    if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {     Log.i(TAG, "unconnect");     // unconnect network     }else {    // connect network     }   }  };
在适当的地方进行上面connectionReceiver的注册


更多相关文章

  1. Android中子线程网络查看器与Handler消息处理器
  2. ### Android(安卓)判断app的状态 重启app
  3. android 笔记:判断手机是否显示虚拟按键
  4. Android判断是否有网络连接
  5. Jquery 判断是否 移动设备 浏览
  6. Android判断app是否打开消息通知并跳转设置
  7. Android(安卓)底部导航BottomNavigationView(非官方)
  8. Android将发送的短信插入数据库
  9. kotlin 开发 android 程序中网络http请求和线程的使用

随机推荐

  1. android binder机制之--(创建binder服务)
  2. 我眼中的Android(安卓)IDE
  3. android技术要点梳理
  4. Android启动脚本init.rc
  5. andorid padding margin
  6. Android性能调优工具TraceView介绍
  7. android中Layoutopt的使用
  8. Android之Wifi学习(1)
  9. 使用User Agent分辨出Android设备类型的
  10. 在 Android(安卓)模拟器中启用摄像头支持