帮助类

检测网络连接状态代码

2017-11-09  本文已影响4人  根艮哏艮根
public class NmaConnectivityReceiver extends BroadcastReceiver {

    private static final String LOGTAG = LogUtils
            .makeLogTag(NmaConnectivityReceiver.class);

    @Override
    public void onReceive(Context context, Intent intent) {

        ConnectivityManager connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

        if (networkInfo != null) {
            String netType = (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) ? "3G" : "WIFI";
            if (networkInfo.isConnected()) {
                Log.i(LOGTAG, "Network connected");
                if (AndroidHelper.isAppRunning(context) || LoginActivity.mIfRunning) {
                    Toast.makeText(context, "已连接到" + netType + "网络", Toast.LENGTH_SHORT).show();
                    //TODO 进行联网操作
                    context.sendBroadcast(new Intent(Constants.NMA_ACTION_NETWORK_CONNECTED));
                }
            }
        } else {
            Log.e(LOGTAG, "Network unavailable");
            if (AndroidHelper.isAppRunning(context)) {
                Toast.makeText(context, "网络连接已断开", Toast.LENGTH_SHORT).show();
                 //TODO 进行断网操作
                context.sendBroadcast(new Intent(Constants.NMA_ACTION_NETWORK_UNAVAILABLE));
            }
        }
    }
}

最后别忘了在Application中来注册

private BroadcastReceiver connectivityReceiver;
 // 注册网络监听
connectivityReceiver = new NmaConnectivityReceiver();

IntentFilter filter = new IntentFilter();

filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);

registerReceiver(connectivityReceiver, filter);

用完记得销毁昂

unregisterReceiver(connectivityReceiver);
上一篇 下一篇

猜你喜欢

热点阅读