import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.net.Network;
import android.net.NetworkCapabilities;
public static boolean isNetAvailable(Context context) {
PackageManager localPackageManager = context.getPackageManager();if (localPackageManager.checkPermission("android.permission.ACCESS_NETWORK_STATE", context.getPackageName()) != 0){
return false;
}
ConnectivityManager localConnectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (localConnectivityManager == null) {
return false;
}
try {
//android 5.0以后引入了多网络连接,getAllNetworkInfo将要在6.0以后弃用
if(Build.VERSION.SDK_INT >= 21){
Network[] networks = localConnectivityManager.getAllNetworks();
for (Network network : networks) {
NetworkCapabilities capabilities = localConnectivityManager.getNetworkCapabilities(network);
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN) ||
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
return true;
}
}
}else {
NetworkInfo[] info = localConnectivityManager.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i] == null)
continue;
if (info[i].isConnected() ) {
return true;
}
// if (info[i].isConnectedOrConnecting() ) {
// return true;
// }
}
}
}
} catch (Exception e) {
}
return false;
}
或
public static boolean isNetworkConnected(Context context)
{
ConnectivityManager connectivitymanager = (ConnectivityManager)context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkinfo = connectivitymanager.getActiveNetworkInfo();
if (networkinfo != null)
return networkinfo.isConnectedOrConnecting();
else
return false;
}