package com.iflytek.base.lib_app.utils.system;
import android.annotation.SuppressLint;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import com.iflytek.base.lib_app.BaseApplication;
import com.iflytek.collector.common.net.RetransmissionTask;
/**
* author : dzh .
* date : 2018/1/31
* desc : 网络
* @author luoming 最新的代码
*/
public class NetUtil {
/**
* 没有连接网络
*/
public static final int NETWORK_NONE = -1;
/**
* 移动网络
*/
public static final int NETWORK_MOBILE = 0;
/**
* 无线网络
*/
public static final int NETWORK_WIFI = 1;
public static int getNetWorkState(Context context) {
// 得到连接管理器对象
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
if (activeNetworkInfo.getType() == (ConnectivityManager.TYPE_WIFI)) {
return NETWORK_WIFI;
} else if (activeNetworkInfo.getType() == (ConnectivityManager.TYPE_MOBILE)) {
return NETWORK_MOBILE;
}
} else {
return NETWORK_NONE;
}
return NETWORK_NONE;
}
/** 判断手机是否连接网络 */
public static boolean isNetWorking() {
ConnectivityManager cwjManager = (ConnectivityManager) BaseApplication.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Network activeNetwork = cwjManager.getActiveNetwork();
if (activeNetwork == null){
return false;
}
NetworkCapabilities networkCapabilities =
cwjManager.getNetworkCapabilities(activeNetwork);
if (networkCapabilities != null) {
return networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
}
}
//[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: , failover: false, available: true, roaming: false]
//info.isRoaming() 是否漫游
NetworkInfo info = cwjManager.getActiveNetworkInfo();
return info != null && info.isAvailable();
}
/**
* 判断wifi 是否可用
* @param context
* @return
* @throws Exception
*/
public static boolean isWifiDataEnable(Context context){
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isWifiDataEnable = false;
isWifiDataEnable = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
return isWifiDataEnable;
}
/**
* 当前网络类型是否是wifi
*
* @return
*/
public static boolean isWifi() {
ConnectivityManager connectivityManager = (ConnectivityManager) BaseApplication.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
return info != null && info.getType() == ConnectivityManager.TYPE_WIFI;
}
public static boolean is4G(){
ConnectivityManager connectivityManager = (ConnectivityManager) BaseApplication.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
return info != null && info.getType() == ConnectivityManager.TYPE_MOBILE;
}
@SuppressLint("MissingPermission")
public static int getNetWorkStateNew(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobileNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mobileNetInfo != null && mobileNetInfo.isAvailable()) {
//手机
return NETWORK_MOBILE;
} else if (wifiNetInfo != null && wifiNetInfo.isAvailable()) {
//WIFI
return NETWORK_WIFI;
} else {
//WIFI和移动网络均未连接
return NETWORK_NONE;
}
} else {
if (isMobileConnected(context)) {
return NETWORK_MOBILE;
} else if (isWifiConnected(context)) {
return NETWORK_WIFI;
} else {
return NETWORK_NONE;
}
}
// //获取所有网络连接的信息
// Network[] networks = connMgr.getAllNetworks();
// //通过循环将网络信息逐个取出来
// for (int i = 0; i < networks.length; i++) {
// //获取ConnectivityManager对象对应的NetworkInfo对象
// NetworkInfo networkInfo = connMgr.getNetworkInfo(networks[i]);
// if (networkInfo.isConnected()) {
// if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
// return NetwordStatus.WIFI;
// } else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
// return NetwordStatus.MOBILE;
// }
// }
// }
}
/**
* 判断网络是否连接
*
* @param context
* @return
*/
// @SuppressLint("MissingPermission")
// public static boolean isOnline(Context context) {
// if (context == null) {
// return false;
// }
// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
// ConnectivityManager connMgr = (ConnectivityManager)
// context.getSystemService(Context.CONNECTIVITY_SERVICE);
// NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
// return (networkInfo != null && networkInfo.isAvailable());
// } else {
// ConnectivityManager connectivityManager = (ConnectivityManager) context
// .getSystemService(Context.CONNECTIVITY_SERVICE);
// Network activeNetwork = connectivityManager.getActiveNetwork();
// if (activeNetwork == null) {
// return false;
// }
// NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
// if (networkCapabilities != null) {
// return networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
// }
// }
// return false;
// }
@SuppressLint("MissingPermission")
public static boolean isWifiConnected(Context context) {
if (context == null) {
return false;
}
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo != null) {
return networkInfo.isAvailable();
}
} else {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
Network activeNetwork = connectivityManager.getActiveNetwork();
if (activeNetwork == null) {
return false;
}
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
if (networkCapabilities != null) {
return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);
}
}
return false;
}
@SuppressLint("MissingPermission")
public static boolean isMobileConnected(Context context) {
if (context == null) {
return false;
}
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (networkInfo != null) {
return networkInfo.isAvailable();
}
} else {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
Network activeNetwork = connectivityManager.getActiveNetwork();
if (activeNetwork == null) {
return false;
}
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
if (networkCapabilities != null) {
return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR);
}
}
return false;
}
}
package com.tal.jxtteacher.http;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.telephony.TelephonyManager;
public class NetWorkUtil {
/**
* 网络连接是否可用
*/
public static boolean isNetworkAvailable(Context ctx) {
ConnectivityManager connectivity = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED || info[i].getState() == NetworkInfo.State.CONNECTING) {
return true;
}
}
}
}
return false;
}
/**
* 检查网络类型
*
* @return
*/
public static boolean checkNetworkType(Context ctx) {
ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
return false;
}
NetworkInfo.State mobile = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
NetworkInfo.State wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
System.out.println("手机网络");
return true;
}
if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
System.out.println("WIFI");
return true;
}
return false;
}
/**
* 手机网络
*/
public static boolean isMobileNetwork(Context ctx) {
ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
return false;
}
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
return false;
}
/**
* wifi网络
*/
public static boolean isWifiNetwork(Context ctx) {
ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
return false;
}
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
}
return false;
}
/**
* 跳转去网络设置页面
*/
public static void startNetworkSettingActivity(Context ctx) {
Intent intent = new Intent();
int sdkVersion = Build.VERSION.SDK_INT;
if (sdkVersion >= 14) {
intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
} else {
// android4.0系统找不到此Activity
intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(intent);
}
/**
* 检测当前打开的网络类型是否WIFI
*
* @param context 上下文
* @return 是否是Wifi上网
*/
public static boolean isWifi(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context
.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetInfo != null && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
}
return false;
}
/**
* 是否有网
*/
public static boolean isConnected(Context context) {
return netSatus(context) != NetState.NET_NO;
}
/**
* 枚举网络状态 NET_NO:没有网络 NET_2G:2g网络 NET_3G:3g网络 NET_4G:4g网络 NET_WIFI:wifi
* NET_UNKNOWN:未知网络
*/
public static enum NetState {
NET_NO, NET_2G, NET_3G, NET_4G, NET_WIFI, NET_UNKNOWN
}
/**
* 判断当前是否网络连接
*
* @param context 上下文
* @return 状态码
*/
public static NetState netSatus(Context context) {
NetState stateCode = NetState.NET_NO;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni != null && ni.isConnectedOrConnecting()) {
switch (ni.getType()) {
case ConnectivityManager.TYPE_WIFI:
stateCode = NetState.NET_WIFI;
break;
case ConnectivityManager.TYPE_MOBILE:
switch (ni.getSubtype()) {
case TelephonyManager.NETWORK_TYPE_GPRS: // 联通2g
case TelephonyManager.NETWORK_TYPE_CDMA: // 电信2g
case TelephonyManager.NETWORK_TYPE_EDGE: // 移动2g
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_IDEN:
stateCode = NetState.NET_2G;
break;
case TelephonyManager.NETWORK_TYPE_EVDO_A: // 电信3g
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EVDO_0:
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:
stateCode = NetState.NET_3G;
break;
case TelephonyManager.NETWORK_TYPE_LTE:
stateCode = NetState.NET_4G;
break;
default:
stateCode = NetState.NET_UNKNOWN;
}
break;
default:
stateCode = NetState.NET_UNKNOWN;
}
}
return stateCode;
}
}
NetWorkUtils HttpUtils
于 2020-04-14 21:04:54 首次发布