zoukankan      html  css  js  c++  java
  • 安卓 新版本 获取wifi状态网络是否可用等

    写下这篇文章目的:当我学习的和百度看看如何获取网络状态 发现都是一些比较老的方法 API23已结过时 所以在此写下记录 ,我不明白国内为什么那么少

    那么我们来看看旧方法

    package com.chengxinet.bobo.utils;
    
    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.telephony.TelephonyManager;
    
    /**
     * Created by Administrator on 2016/1/7.
     */
    public class NetworkUtils {
      public static boolean isNetworkAvailable(Context c) {
        Context context = c.getApplicationContext();
        // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    
        if (connectivityManager == null) {
          return false;
        } else {
          // 获取NetworkInfo对象
          NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
    
          if (networkInfo != null && networkInfo.length > 0) {
            for (NetworkInfo aNetworkInfo : networkInfo) {
    //          System.out.println(i + "===状态===" + networkInfo[i].getState());
    //          System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
              // 判断当前网络状态是否为连接状态
              if (aNetworkInfo.getState() == NetworkInfo.State.CONNECTED) {
                return true;
              }
            }
          }
        }
        return false;
      }
    
      /**
       * 判断WIFI是否打开
       * @param context
       * @return
       */
      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);
      }
    
      /**
       * 判断是否是3G网络
       * @param context
       * @return
       */
      public static boolean is3rd(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkINfo = cm.getActiveNetworkInfo();
        if (networkINfo != null
            && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
          return true;
        }
        return false;
      }
    
      /**
       * 判断是wifi还是3g网络
       * @param context
       * @return
       */
      public static boolean isWifi(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkINfo = cm.getActiveNetworkInfo();
        if (networkINfo != null
            && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
          return true;
        }
        return false;
      }
    }

    来看看新方法吧

    public class ConnectionDetector {
    
    private Context _context;
    
    public ConnectionDetector(Context context) {
        this._context = context;
    }
    
    public boolean isConnectingToInternet() {
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Network[] networks = connectivity.getAllNetworks();
            NetworkInfo networkInfo;
            for (Network mNetwork : networks) {
                networkInfo = connectivity.getNetworkInfo(mNetwork);
                if (networkInfo.getState().equals(NetworkInfo.State.CONNECTED)) {
                    return true;
                }
            }
        } else {
            if (connectivity != null) {
                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;
    }}
  • 相关阅读:
    token认证、JWT
    DRF序列化、认证、跨域问题
    JS 作用域 p1
    如何配置图标
    关于批量更新与删除
    windows 公司内部搭建禅道(项目管控)
    JS 创建自定义对象的方式方法
    apicloud 消息推送与接收
    apicloud 自定义模块的开发与上架注意事项
    apicloud 第一篇
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152116.html
Copyright © 2011-2022 走看看