手机网络状态查询工具类
来源:互联网 发布:明底线知敬畏演讲稿 编辑:程序博客网 时间:2024/05/16 00:32
package com.mystudy.kibi.utils;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.telephony.TelephonyManager;/** * Created by KIBI熊 on 16/6/27. */public class NetworkStateUtil { static ConnectivityManager connectivityManager = null; static TelephonyManager telephonyManager = null; static NetworkInfo curNetworkInfo = null; static NetworkInfo wifiNetworkInfo = null; static NetworkInfo mobileNetworkInfo = null; public static final int NONE_TYPE = -1; public static final int WIFI_TYPE = 0; public static final int WAP_TYPE = 1; public static final int NET_TYPE = 2; /** * 判断当前是否连接网络且可用 * @param context * @return */ public static boolean isNetworkConnected(Context context){ if(context != null){ connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); curNetworkInfo = connectivityManager.getActiveNetworkInfo(); if(curNetworkInfo != null){ return curNetworkInfo.isAvailable(); } } return false; } /** * 判断该设备的Wi-Fi功能是否可用 * 无论连没连到Wi-Fi,只要设备打开了Wi-Fi功能,返回的都是true * * @param context * @return */ public static boolean isWIFIAvailable(Context context){ if(context != null){ connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); wifiNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(wifiNetworkInfo != null){ return wifiNetworkInfo.isAvailable(); } } return false; } /** * 判断是否连接到了可用的Wi-Fi * @param context * @return */ public static boolean isWIFIConnected(Context context){ if(context != null){ if(isNetworkConnected(context)){ return curNetworkInfo.getType()==ConnectivityManager.TYPE_WIFI; } } return false; } /** * 判断移动网络是否可用,即MOBILE网络 * 无论有没有打开移动数据网络,只要手机里有SIM卡,返回的都是true * @param context * @return */ public static boolean isMobileAvailable(Context context){ if (context != null){ connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); mobileNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if(mobileNetworkInfo != null){ return mobileNetworkInfo.isAvailable(); } } return false; } /** * 获取当前网络类型 * * 类型分为: -1:无网络 0:Wi-Fi 1:WAP 2:NET * * 手机上网net和wap的区别: * wap是老版网络协议的产物。主要针对老手机用户,net是微软的产 * 物,是互联网,一般手机用wap,智能机用net,当然智能机也可以用 * wap,wap稳定,net网速快。 * 打个比方,GPRS是一辆车,net和wap就是两条路;net是高速公路, * wap是一般的水泥路;前者快,收费高,后者收费较少,但速度慢。 * * @param context * @return */ public static int getNetworkTyoe(Context context){ if(context != null){ connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); curNetworkInfo = connectivityManager.getActiveNetworkInfo(); if(curNetworkInfo != null){ switch (curNetworkInfo.getType()){ case ConnectivityManager.TYPE_WIFI: return WIFI_TYPE; case ConnectivityManager.TYPE_MOBILE: if(curNetworkInfo.getExtraInfo().toLowerCase().contains("net")){ return NET_TYPE; }else { return WAP_TYPE; } } } } return NONE_TYPE; } /** * 获取设备SIM卡的商网络服务商 * @param context * @return */ public static String getOperatorNetworkType(Context context){ if(context != null){ telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); String networkOperatorName = telephonyManager.getNetworkOperatorName(); switch (telephonyManager.getNetworkType()){ case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return networkOperatorName+"2G"; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: return networkOperatorName+"3G"; case TelephonyManager.NETWORK_TYPE_LTE: return networkOperatorName+"4G"; } } return "请插入SIM卡"; }}
0 0
- 手机网络状态查询工具类
- 网络状态工具类
- 判断网络状态工具类
- 网络状态判断工具类
- 判断网络状态工具类
- 判断网络状态工具类
- 网络状态判断工具类
- 判断网络状态工具类
- 网络状态判断工具类
- Android手机服务状态的工具类
- 手机网络状态
- 获取手机网络状态
- 判断手机网络状态
- [判断手机网络状态]
- 手机网络连接状态
- 获取手机网络状态
- Android 工具类 —— 判断网络连接状态、GPS是否打开、基站信息和手机IMSI码
- 查询网络状态
- send() recv() 解析(转载)
- 自定义Toast及动画的二三事
- 基于多个MPC的的调度控制器
- codeforces 357div2总结
- 从服务业突然决定转行进入IT界
- 手机网络状态查询工具类
- 序列化二叉树
- hbase 基本命令
- C++中的继承
- Android开发指南--0 总览
- poj3258 二分(连续区间求和)
- U3D自定义滑动面板ViewPager
- 自制的通讯录APP(SQLite的应用)
- Redis-sds源码剖析第一天