美文网首页帮助类
检测网络连接状态代码

检测网络连接状态代码

作者: 根艮哏艮根 | 来源:发表于2017-11-09 15:05 被阅读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);

相关文章

网友评论

    本文标题:检测网络连接状态代码

    本文链接:https://www.haomeiwen.com/subject/veapmxtx.html