package tv.danmaku.android;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v4.net.ConnectivityManagerCompat;
import android.text.TextUtils;
public class ConnectivityManagerHelper {
public static ConnectivityManager getConnectivityManager(Context context) {
return (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
}
public static NetworkInfo getActivieNetworkInfo(Context context) {
ConnectivityManager manager = getConnectivityManager(context);
if (manager == null)
return null;
return manager.getActiveNetworkInfo();
}
/*-
* FIXME: for USB connect, this method can not be reliable.
* Only use this method to retrieve error reason
*/
public static boolean isConnectedOrConnecting(Context context) {
NetworkInfo networkInfo = getActivieNetworkInfo(context);
if (networkInfo == null)
return false;
return networkInfo.isConnectedOrConnecting();
}
public static boolean isActiveNetworkMetered(Context context) {
ConnectivityManager manager = getConnectivityManager(context);
if (manager == null)
return false;
ConnectivityManagerCompat compat = new ConnectivityManagerCompat();
return compat.isActiveNetworkMetered(manager);
}
public static String getActiveNetworkName(Context context) {
try {
NetworkInfo info = getActivieNetworkInfo(context);
String typeName = info.getTypeName().toLowerCase();
if (typeName.equals("wifi")) {
return typeName;
} else {
String extraInfoName = info.getExtraInfo().toLowerCase();
if (!TextUtils.isEmpty(extraInfoName))
return extraInfoName;
}
return typeName;
} catch (Exception e) {
return null;
}
}
}