Android 网络连接工具类
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
import android.widget.Toast;
/**
* Created by zqh on 2020/7/1.
*/
public class NetworkUtils {
/**
* 获取网络连接状态是否可用
*
* @param context
* @return
*/
public static boolean isNetWorkAvailable(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if(activeNetworkInfo==null){
return false;
}else if (activeNetworkInfo.isConnected()) {
return activeNetworkInfo.isAvailable();
} else {
return false;
}
} else {
return false;
}
}
return false;
}
/**
* 获取网络是否已经连接
*
* @param context
* @return
*/
public static boolean isNetWorkConnected(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if(activeNetworkInfo==null){
return false;
}
return activeNetworkInfo.isConnected();
} else {
return false;
}
}
return false;
}
/**
* 判断已连接的WIFI是否可用
*
* @param context
* @return
*/
public static boolean isWiFiAvailable(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo wiFiInfo = connectivityManager.
getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(wiFiInfo==null){
return false;
}
boolean connected = wiFiInfo.isConnected();
if (connected) {
return wiFiInfo.isAvailable();
} else {
return false;
}
} else {
return false;
}
}
return false;
}
/**
* 判断Wifi网络是否已经连接
*
* @param context
* @return
*/
public static boolean isWifiConnected(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo wiFiInfo = connectivityManager.
getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(wiFiInfo==null){
return false;
}
return wiFiInfo.isConnected();
} else {
return false;
}
}
return false;
}
/**
* 判断移动数据是否已经连接
*
* @param context
* @return
*/
public static boolean isMobileConnected(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo mobileInfo = connectivityManager.
getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(mobileInfo==null){
return false;
}
return mobileInfo.isConnected();
} else {
return false;
}
}
return false;
}
/**
* 判断移动数据是否可用
*
* @param context
* @return
*/
public static boolean isMobileAvailable(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo mobileInfo = connectivityManager.
getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(mobileInfo==null){
return false;
}
boolean connected = mobileInfo.isConnected();
if (connected) {
return mobileInfo.isAvailable();
} else {
return false;
}
} else {
return false;
}
}
return false;
}
/**
* 获取连接的网络类型
*
* @param context
* @return
*/
public static Integer netType(Context context) {
if (context != null) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if(activeNetworkInfo==null){
return -1;
}
if (activeNetworkInfo.isConnected()) {
return activeNetworkInfo.getType();
} else {
return -1;
}
} else {
return -1;
}
}
return -1;
}
/**
* 获取当前 详细的连接网络类型
*
* @param context
* @return
*/
public static int getAPNType(Context context) {
int netType = 0;
ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo == null) {
return netType;//无网络连接
}
int nType = networkInfo.getType();
if (nType == ConnectivityManager.TYPE_WIFI) {
netType = 1;// wifi
} else if (nType == ConnectivityManager.TYPE_MOBILE) {
int nSubType = networkInfo.getSubtype();
TelephonyManager mTelephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
if (nSubType == TelephonyManager.NETWORK_TYPE_UMTS
&& !mTelephony.isNetworkRoaming()) {
netType = 2;// 2G
} else {
netType = 3;// 4G
}
}
return netType;
}
}