Android网络工具类NetworkUtils详解
网络工具类NetworkUtils,供大家参考,具体内容如下
提供的方法:
打开网络设置界面openWirelessSettings
判断网络是否可用isAvailable
判断网络是否连接isConnected
判断网络是否是4Gis4G
判断wifi是否连接状态isWifiConnected
获取移动网络运营商名称getNetworkOperatorName
获取移动终端类型getPhoneType
获取当前的网络类型(WIFI,2G,3G,4G)getNetWorkType、getNetWorkTypeName
代码:
importandroid.content.Context;
importandroid.content.Intent;
importandroid.net.ConnectivityManager;
importandroid.net.NetworkInfo;
importandroid.telephony.TelephonyManager;
/**
*网络工具类
*/
publicclassNetworkUtils{
publicstaticfinalintNETWORK_NO=-1;//nonetwork
publicstaticfinalintNETWORK_WIFI=1;//wifinetwork
publicstaticfinalintNETWORK_2G=2;//"2G"networks
publicstaticfinalintNETWORK_3G=3;//"3G"networks
publicstaticfinalintNETWORK_4G=4;//"4G"networks
publicstaticfinalintNETWORK_UNKNOWN=5;//unknownnetwork
privatestaticfinalintNETWORK_TYPE_GSM=16;
privatestaticfinalintNETWORK_TYPE_TD_SCDMA=17;
privatestaticfinalintNETWORK_TYPE_IWLAN=18;
/**
*打开网络设置界面
*3.0以下打开设置界面
*
*@paramcontext上下文
*/
publicstaticvoidopenWirelessSettings(Contextcontext){
if(android.os.Build.VERSION.SDK_INT>10){
context.startActivity(newIntent(android.provider.Settings.ACTION_SETTINGS));
}else{
context.startActivity(newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}
}
/**
*获取活动网络信息
*
*@paramcontext上下文
*@returnNetworkInfo
*/
privatestaticNetworkInfogetActiveNetworkInfo(Contextcontext){
ConnectivityManagercm=(ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
returncm.getActiveNetworkInfo();
}
/**
*判断网络是否可用
*需添加权限{@code }
*
*@paramcontext上下文
*@return{@codetrue}:可用
{@codefalse}:不可用
*/
publicstaticbooleanisAvailable(Contextcontext){
NetworkInfoinfo=getActiveNetworkInfo(context);
returninfo!=null&&info.isAvailable();
}
/**
*判断网络是否连接
*需添加权限{@code }
*
*@paramcontext上下文
*@return{@codetrue}:是
{@codefalse}:否
*/
publicstaticbooleanisConnected(Contextcontext){
NetworkInfoinfo=getActiveNetworkInfo(context);
returninfo!=null&&info.isConnected();
}
/**
*判断网络是否是4G
*需添加权限{@code }
*
*@paramcontext上下文
*@return{@codetrue}:是
{@codefalse}:不是
*/
publicstaticbooleanis4G(Contextcontext){
NetworkInfoinfo=getActiveNetworkInfo(context);
returninfo!=null&&info.isAvailable()&&info.getSubtype()==TelephonyManager.NETWORK_TYPE_LTE;
}
/**
*判断wifi是否连接状态
*需添加权限{@code }
*
*@paramcontext上下文
*@return{@codetrue}:连接
{@codefalse}:未连接
*/
publicstaticbooleanisWifiConnected(Contextcontext){
ConnectivityManagercm=(ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
returncm!=null&&cm.getActiveNetworkInfo()!=null
&&cm.getActiveNetworkInfo().getType()==ConnectivityManager.TYPE_WIFI;
}
/**
*获取移动网络运营商名称
*如中国联通、中国移动、中国电信
*
*@paramcontext上下文
*@return移动网络运营商名称
*/
publicstaticStringgetNetworkOperatorName(Contextcontext){
TelephonyManagertm=(TelephonyManager)context
.getSystemService(Context.TELEPHONY_SERVICE);
returntm!=null?tm.getNetworkOperatorName():null;
}
/**
*获取移动终端类型
*
*@paramcontext上下文
*@return手机制式
*-
*
- {@linkTelephonyManager#PHONE_TYPE_NONE}:0手机制式未知 *
- {@linkTelephonyManager#PHONE_TYPE_GSM}:1手机制式为GSM,移动和联通 *
- {@linkTelephonyManager#PHONE_TYPE_CDMA}:2手机制式为CDMA,电信 *
- {@linkTelephonyManager#PHONE_TYPE_SIP}:3 *
需添加权限{@code
-
*
- {@link#NETWORK_WIFI}=1; *
- {@link#NETWORK_4G}=4; *
- {@link#NETWORK_3G}=3; *
- {@link#NETWORK_2G}=2; *
- {@link#NETWORK_UNKNOWN}=5; *
- {@link#NETWORK_NO}=-1; *
依赖上面的方法
* *@paramcontext上下文 *@return网络类型名称 *-
*
- NETWORK_WIFI *
- NETWORK_4G *
- NETWORK_3G *
- NETWORK_2G *
- NETWORK_UNKNOWN *
- NETWORK_NO *
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。