package com.demo.lib.common.content; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class ConnectivityChangeHelper { private Context mContext; private OnConnectivityChangeListener mChangeListener; private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cm.getActiveNetworkInfo(); if (info != null && info.isAvailable()) { if (info.getType() == ConnectivityManager.TYPE_MOBILE) { if (mChangeListener != null) { mChangeListener.onMobileAvailable(); } } else if (info.getType() == ConnectivityManager.TYPE_WIFI) { if (mChangeListener != null) { mChangeListener.onWiFiAvailable(); } } } else { if (mChangeListener != null) { mChangeListener.onNetworkUnAvailable(); } } } } }; public ConnectivityChangeHelper(Context context, OnConnectivityChangeListener changeListener) { super(); this.mContext = context; this.mChangeListener = changeListener; } public void registerReceiver() { IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); mContext.registerReceiver(mReceiver, filter); } public void unregisterReceiver() { mContext.unregisterReceiver(mReceiver); } public interface OnConnectivityChangeListener { void onNetworkUnAvailable(); void onWiFiAvailable(); void onMobileAvailable(); } }