zoukankan      html  css  js  c++  java
  • [ 转]Android 监控网络状态

    本文转自:http://blog.csdn.net/wangkuifeng0118/article/details/7333319

    public static boolean isNetworkAvailable(Context context) {
    ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity == null) {
    Log.i("NetWorkState", "Unavailabel");
    return false;
    } else {
    NetworkInfo[] info = connectivity.getAllNetworkInfo();
    if (info != null) {
    for (int i = 0; i < info.length; i++) {
    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
    Log.i("NetWorkState", "Availabel");
    return true;
    }
    }
    }
    }
    return false;
    }


    上面这个方法就是判断网络是否连接的代码,返回true表示有网络,返回false表示无网络。  在Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化。android的网络状态监听可以用BroadcastReceiver来接收网络状态改变的广  播,具体实现如下:

    @Override
    public void onReceive(Context context, Intent intent) {
    Log.e(TAG, "网络状态改变");

    boolean success = false;

    //获得网络连接服务
    ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    // State state = connManager.getActiveNetworkInfo().getState();
    State state = connManager.getNetworkInfo(
    ConnectivityManager.TYPE_WIFI).getState(); // 获取网络连接状态
    if (State.CONNECTED == state) { // 判断是否正在使用WIFI网络
    success = true;
    }

    state = connManager.getNetworkInfo(
    ConnectivityManager.TYPE_MOBILE).getState(); // 获取网络连接状态
    if (State.CONNECTED != state) { // 判断是否正在使用GPRS网络
    success = true;
    }

    if (!success) {
    Toast.makeText(LocationMapActivity.this, "您的网络连接已中断", Toast.LENGTH_LONG).show();
    }

    }

    在Activity的onCreate中:
    //注册网络监听
    IntentFilter filter = new IntentFilter();
    filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
    registerReceiver(mNetworkStateReceiver, filter);
    //在Activity中的onDestroy中:
    unregisterReceiver(mNetworkStateReceiver); //取消监听
     
     
    AndroidManifest.xml
    • 为了访问网络我们需要 INTERNET 权限
    • 为了检查网络状态我们需要 ACCESS_NETWORK_STATE 权限
        <!-- Internet Permissions -->
        <uses-permission android:name="android.permission.INTERNET" />

        <!-- Network State Permissions -->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


  • 相关阅读:
    Json操作(汇总)
    Jersey实现Client端:GET/PUT/POST/DELETE
    tomcat配置文件server.xml详解
    DB2 Catalog浅析&学习笔记
    《学习笔记》Maven
    【58沈剑架构系列】单点系统架构的可用性与性能优化
    JavaScript(获取或设置html元素的宽,高,坐标),确定和判断鼠标是否在元素内部,二级导航菜单鼠标离开样式问题解决
    纯CSS绘制三角形(各种角度)
    css3 box-sizing属性值详解
    css字体图标的使用方法
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3006810.html
Copyright © 2011-2022 走看看