Android网络状态的监听

来源:互联网 发布:罗技键盘推荐 知乎 编辑:程序博客网 时间:2024/05/17 05:56

平常编程中是否遇到过以下情况:

1.网络通畅——>网络中断

2.无网络连接——>网络连接

3.网络的切换——>wifi切换成4g,4g切换成wifi


我们需要对以上的几种情况作出相应的处理,或许提示,获取获取切换到4g时,开启小图省流量模式,以及进行socket的重新连接等,诸如此类的处理。


Demo下载:(待定)


效果图:


下面直接上程序片段

package com.tb.demo.net;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.util.Log;/** * Created by tangbin on 15/9/10. */public class NetBroadcastReceiver extends BroadcastReceiver {    private ConnectivityManager connectivityManager;    private NetworkInfo info;    @Override    public void onReceive(Context context, Intent intent) {        String action = intent.getAction();        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {            connectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            info = connectivityManager.getActiveNetworkInfo();            if (info != null && info.isAvailable()) {                String name = info.getTypeName();                Log.d(NetBroadcastReceiver.class.getSimpleName(), "终于来网了呢:网络类型是"                        + name);                // doSomething()            } else {                Log.d(NetBroadcastReceiver.class.getSimpleName(), "断网了,亲");                // doSomething()            }        }    }}


然后需要进行相关的注册才能生效,代码片段

<receiver android:name="com.tb.demo.net.NetBroadcastReceiver"><span style="white-space:pre"></span><intent-filter>        <span style="white-space:pre"></span><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/><span style="white-space:pre"></span></intent-filter></receiver>







0 0
原创粉丝点击