在工作中我们经常要用到网络,网络状态的检查必不可少,这是一个检查当前网络状态的工具类,直接粘过去就能

package com.todoo.android.app.utils;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class NetworkUtils{public static final String NET_TYPE_WIFI = "WIFI";public static final String NET_TYPE_MOBILE = "MOBILE";public static final String NET_TYPE_NO_NETWORK = "no_network";private Context mContext = null;public NetworkUtils(Context pContext) {this.mContext = pContext;}public static final String IP_DEFAULT = "0.0.0.0";public static boolean isConnectInternet(final Context pContext){final ConnectivityManager conManager = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);final NetworkInfo networkInfo = conManager.getActiveNetworkInfo();if (networkInfo != null){return networkInfo.isAvailable();}return false;}public static boolean isConnectWifi(final Context pContext) {ConnectivityManager mConnectivity = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = mConnectivity.getActiveNetworkInfo();//判断网络连接类型,只有在3G或wifi里进行一些数据更新。  int netType = -1;if(info != null){netType = info.getType();}if (netType == ConnectivityManager.TYPE_WIFI) {return info.isConnected();} else {return false;}}public static String getNetTypeName(final int pNetType){switch (pNetType){case 0:return "unknown";case 1:return "GPRS";case 2:return "EDGE";case 3:return "UMTS";case 4:return "CDMA: Either IS95A or IS95B";case 5:return "EVDO revision 0";case 6:return "EVDO revision A";case 7:return "1xRTT";case 8:return "HSDPA";case 9:return "HSUPA";case 10:return "HSPA";case 11:return "iDen";case 12:return "EVDO revision B";case 13:return "LTE";case 14:return "eHRPD";case 15:return "HSPA+";default:return "unknown";}}public static String getIPAddress(){try{final Enumeration<NetworkInterface> networkInterfaceEnumeration = NetworkInterface.getNetworkInterfaces();while (networkInterfaceEnumeration.hasMoreElements()){final NetworkInterface networkInterface = networkInterfaceEnumeration.nextElement();final Enumeration<InetAddress> inetAddressEnumeration = networkInterface.getInetAddresses();while (inetAddressEnumeration.hasMoreElements()){final InetAddress inetAddress = inetAddressEnumeration.nextElement();if (!inetAddress.isLoopbackAddress()){return inetAddress.getHostAddress();}}}return NetworkUtils.IP_DEFAULT;}catch (final SocketException e){return NetworkUtils.IP_DEFAULT;}}public String getConnTypeName() {ConnectivityManager connectivityManager = (ConnectivityManager) this.mContext.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();if(networkInfo == null) {return NET_TYPE_NO_NETWORK;} else {return networkInfo.getTypeName();}}}
最后不要忘了加上权限:

<!-- 获取网络状态的权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

更多相关文章

  1. android 2.3 电量管理
  2. android perimission 和 user-perimission
  3. Android(安卓)SwitchButton(滑动开关)
  4. Android开发 设置App开机自启动
  5. Android(安卓)Device Monitor 报 open failed: Permission denie
  6. Android(安卓)首选网络模式默认值的修改方法
  7. Android(安卓)app 权限
  8. android 权限注解库
  9. Android(安卓)Jetpack架构组件(七)之WorkManager

随机推荐

  1. radiobutton实现底部导航
  2. [置顶] 【Android】毫无耦合性,一个Item根
  3. Android(安卓)应用进程启动流程
  4. Android:TextWatcher
  5. Android7、8、9最新相关工具编译汇总(adb.
  6. Android(安卓)SDK Tools Setup安装提示Ja
  7. Android项目Tab类型主界面大总结 Fragmen
  8. Ubuntu 11.04上搭建Android开发环境
  9. android 添加自定义theme和style
  10. android IOC框架解析(上)