Android網絡狀態的監聽

平常編程中是否遇到過以下情況:

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>







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章