超实用的android网络工具类

在实际开发中,往往一些工具类对我们的帮助是非常大的,借此,我在前人各位前辈的基础上,整理了一个网络的工具类,特此献上:

/**
 * @类名:NetUtil
 * @类描述:网络判断处理类
 * @创建时间:2015年2月12日-上午9:34:32
 * @修改人:
 * @修改时间:
 * @修改备注:
 * @版本:
 */
public class NetUtil {
  /* 网络状态 */
  public static boolean isNet = true;
  public static enum netType
  {
    wifi, CMNET, CMWAP, noneNet
  }

  /**
   * @方法说明:判断WIFI网络是否可用
   * @方法名称:isWifiConnected
   * @param context
   * @return
   * @返回值:boolean
   */
  public static 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;
  }

  /**
   * @方法说明:判断MOBILE网络是否可用
   * @方法名称:isMobileConnected
   * @param context
   * @return
   * @返回值:boolean
   */
  public static 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;
  }

  /**
   * @方法说明:获取当前网络连接的类型信息
   * @方法名称:getConnectedType
   * @param context
   * @return
   * @返回值:int
   */
  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;
  }

  /**
   * @方法说明:获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap 网络3:net网络
   * @方法名称:getAPNType
   * @param context
   * @return
   * @返回值:netType
   */
  public static netType getAPNType(Context context)
  {
    ConnectivityManager connMgr = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo == null)
    {
      return netType.noneNet;
    }
    int nType = networkInfo.getType();

    if (nType == ConnectivityManager.TYPE_MOBILE)
    {
      if (networkInfo.getExtraInfo().toLowerCase().equals("cmnet"))
      {
        return netType.CMNET;
      }

      else
      {
        return netType.CMWAP;
      }
    } else if (nType == ConnectivityManager.TYPE_WIFI)
    {
      return netType.wifi;
    }
    return netType.noneNet;

  }

  /**
   * @方法说明:判断是否有网络连接
   * @方法名称:isNetworkConnected
   * @param context
   * @return
   * @返回值:boolean
   */
  public static boolean isNetworkConnected(Context context) {
    if (context != null) {
      ConnectivityManager mConnectivityManager = (ConnectivityManager) context
          .getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo mNetworkInfo = mConnectivityManager
          .getActiveNetworkInfo();
      if (mNetworkInfo != null) {
        return mNetworkInfo.isAvailable();
      }
    }
    return false;
  }

  /**
   * @方法说明:网络是否可用
   * @方法名称:isNetworkAvailable
   * @param context
   * @return
   * @返回值:boolean
   */
  public static boolean isNetworkAvailable(Context context)
  {
    ConnectivityManager mgr = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] info = mgr.getAllNetworkInfo();
    if (info != null)
    {
      for (int i = 0; i < info.length; i++)
      {
        if (info[i].getState() == NetworkInfo.State.CONNECTED)
        {
          return true;
        }
      }
    }
    return false;
  }

  /**
   * @方法说明:判断是否是手机网络
   * @方法名称:is3GNet
   * @param context
   * @return
   * @返回值:boolean
   */
  public static boolean is3GNet(Context context) {
    ConnectivityManager connectivityManager = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
    if (activeNetInfo != null
        && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
      return true;
    }
    return false;
  }
}

好的!希望对大家有帮助!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android网络工具类NetworkUtils详解
  • Android开发之超实用的系统管理工具类【SD卡,网络,uri,屏幕,网络,软键盘,文本,进程等】
  • Android自定义网络连接工具类HttpUtil
  • Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】
  • android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)
  • Android检查网络状态工具类详解
(0)

相关推荐

  • Android开发之超实用的系统管理工具类【SD卡,网络,uri,屏幕,网络,软键盘,文本,进程等】

    本文实例讲述了Android开发之超实用的系统管理工具类.分享给大家供大家参考,具体如下: 这是一个系统管理工具类,管理sd卡,判断网络,uri转换,获取屏幕宽高,获取网络类型,隐藏软键盘,复制文本到粘贴板,获取状态栏高度,获取当前进程等. 上代码 import java.io.File; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity

  • Android自定义网络连接工具类HttpUtil

    本文实例为大家分享了Android网络连接工具类HttpUtil的使用方法,供大家参考,具体内容如下 该工具实现了发送get和post请求,请求的结果以String字符串的形式返回,比较适合接收服务器端发送过来的JSON字符串数据 get方法适合从服务器端获取数据 post方法适合发送数据到服务器端 使用的时候直接调用get或post方法就好 get方法传递一个url请求 post方法传递一个url请求和要发送到服务器端的数据params 接收数据后返回的是一个String字符串 HttpUti

  • android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)

    复制代码 代码如下: public class CommonUtil { public static boolean hasSDCard() { String status = Environment.getExternalStorageState();  return status.equals(Environment.MEDIA_MOUNTED); } /**  * 获取最大内存  *   * @return  */ public static long getMaxMemory() { r

  • Android网络工具类NetworkUtils详解

    网络工具类NetworkUtils,供大家参考,具体内容如下 提供的方法: 打开网络设置界面 openWirelessSettings 判断网络是否可用 isAvailable 判断网络是否连接 isConnected 判断网络是否是4G is4G 判断wifi是否连接状态 isWifiConnected 获取移动网络运营商名称 getNetworkOperatorName 获取移动终端类型 getPhoneType 获取当前的网络类型(WIFI,2G,3G,4G) getNetWorkType

  • Android检查网络状态工具类详解

    在Android中开发具有网络交互的应用时候,有时候我们需要检查网络状态才能确定是否去请求网络,就需要用到公共类 代码: package com.example.ldp.com.util; /** * Created by Administrator on 2017/4/7. */ import android.content.Context; import android.app.Activity; import android.app.AlertDialog; import android.

  • Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】

    本文实例讲述了Android开发中4个常用的工具类.分享给大家供大家参考,具体如下: 1.土司工具类(Toast管理) /** * Toast统一管理类 * * @Project App_ZXing * @Package com.android.scan * @author chenlin * @version 1.0 * @Date 2013年7月6日 * @Note TODO */ public class ToastUtil { private ToastUtil() { /* canno

  • 超实用的android网络工具类

    在实际开发中,往往一些工具类对我们的帮助是非常大的,借此,我在前人各位前辈的基础上,整理了一个网络的工具类,特此献上: /** * @类名:NetUtil * @类描述:网络判断处理类 * @创建时间:2015年2月12日-上午9:34:32 * @修改人: * @修改时间: * @修改备注: * @版本: */ public class NetUtil { /* 网络状态 */ public static boolean isNet = true; public static enum net

  • 19个Android常用工具类汇总

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.

  • Android系统工具类详解

    本文实例为大家分享了Android系统工具类的具体代码,供大家参考,具体内容如下 系统工具类 public class systemUtil { //隐藏ipad底部虚拟按键栏 @RequiresApi(api = Build.VERSION_CODES.KITKAT) public static void closeBottomBar(Activity activity){ Window _window = activity.getWindow(); WindowManager.LayoutP

  • 非常实用的Android图片工具类

    本文实例为大家分享了Android图片工具类的具体代码,供大家参考,具体内容如下 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.content.Context; import android.grap

  • Android BitmapUtils工具类使用详解

    本文实例为大家分享了Android BitmapUtils工具类的具体代码,供大家参考,具体内容如下 public final class BitmapUtils { public static final String TAG = "BitmapUtil"; private static int sShotScreenWidth = 480; private static int sShotScreenHeight = 720; private static int sShotScr

  • android自动工具类TextUtils使用详解

    今天,简单讲讲如何使用android自动的工具类TextUtils. 简单列举部分用法: Log.d(TAG, "---------------------------------"); //字符串拼接 Log.d(TAG, TextUtils.concat("Hello", " ", "world!").toString()); //判断是否为空字符串 Log.d(TAG, TextUtils.isEmpty("H

  • Android动画工具类的封装实战记录

    起因 最近在做一个组件化框架的封装,现在开发到一些常用工具类的封装了,突然意识到好像还没有做动画的工具类,于是开始着手开发之. 思路 既然要做动画,肯定是要做属性动画的工具类的封装了,由于补间动画和逐帧动画并不能改变目标动画主题的实际属性,在Android的开发中已经越来越少人去用这两个动画框架做开发了,而属性动画则相对的越来越广泛的使用在开发过程中了,于是这次的工具类的封装,只针对属性动画来封装. 属性动画对应的类叫做ObjectAnimator,主要就是用这个类来实现动画的一些基础设置,其具

  • android 一些工具类汇总

    一 Paint ,Canvas public class drawView extends View{ private Paint paint1; public drawView(Context context,AttributeSet set ){ super(context,set); } public void onDraw(Canvas canvas){ super.onDraw(canvas); //new 一个画笔对象 paint1= new Paint(); canvas.draw

随机推荐