美文网首页
android网络监听学习笔记

android网络监听学习笔记

作者: 小宋敲码 | 来源:发表于2019-04-15 17:59 被阅读0次

网络变化android自带广播、采用广播接收器接收网络变化的监听

自定义广播接收
public class NetworkInfoBroadcastReceiver extends BroadcastReceiver {
    private static final String TAG = "NetworkInfoBroadcastRec";

    @Override
    public void onReceive(Context context, Intent intent) {
        String state = intent.getAction();
        if (!TextUtils.isEmpty(state)) {
            //wifi的转态监听
            if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(state)) {
                int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);
                switch (wifiState) {
                    case WifiManager.WIFI_STATE_DISABLED:
                        Log.e(TAG, "已禁用Wi-Fi");
                        break;
                    case WifiManager.WIFI_STATE_DISABLING:
                        Log.e(TAG, "已启用Wi-Fi");
                        break;
                }
            }
            //网络监听
            if (ConnectivityManager.CONNECTIVITY_ACTION.equals(state)) {
                Log.e(TAG, "网络连接已发生更改 ");
                //获取联网状态的NetworkInfo对象
                ConnectivityManager manager = (ConnectivityManager) MyApplication.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
                @SuppressLint("MissingPermission") NetworkInfo info = manager.getActiveNetworkInfo();
                if (info != null && info.isAvailable()) {
                    int type = info.getType();
                    switch (type) {
                        case 0://移动网络
                            Log.e(TAG, "移动网络");
                            break;
                        case 1://wifi
                            Log.e(TAG, "wifi");
                            break;
                        default:
                            break;
                    }
                } else {
                    Log.e(TAG, "无网络");
                }
            }
        }
    }
}
为了方便全局监听在baseactivity中注册
public class BaseActivity extends AppCompatActivity {
    NetworkInfoBroadcastReceiver receiver = new NetworkInfoBroadcastReceiver();
    @Override
    protected void onResume() {
        super.onResume();
        Register();
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (receiver != null) {
            unregisterReceiver(receiver);
            receiver = null;
        }
    }
   private void Register() {
            //这里我只添加了wifi姿态和网络变化的广播、还有一些其他的网络的广播可以自行添加
            IntentFilter filter = new IntentFilter();
            filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
            filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            registerReceiver(receiver, filter);
        }

}

相关文章

  • android网络监听学习笔记

    网络变化android自带广播、采用广播接收器接收网络变化的监听 自定义广播接收 为了方便全局监听在baseact...

  • Android监听网络变化

    参考Android 网络管家ConnectivityManager android 7.0 之后 对于监听网络变化...

  • (笔记)Android监听网络状态

    在Android中对于网络状态的监听,这里做最简单的一种。直接上步骤:1、首先在Activity或者Fragmen...

  • Android 检测网络类型及是否能用

    Android 中网络连接检测和使用ping检测网络是否可访问Android:检测网络状态&监听网络变化 获得Co...

  • Android 判断网络连接状态

    在Android上,我们需要对不同的网络情况做出一些操作。官方提供了监听网络状态变化的广播,用来监听网络的变化情况...

  • Android 监听网络变化

    qq群:614530228 首先在清单文件里加入权限 NetworkChangeReceiver.class 在B...

  • Android监听网络状态

    几乎所有的安卓应用都会用到网络,除去极少数纯单机的应用。而在应用使用网络的过程中,必然会收到网络状态的影响。特别是...

  • Android网络状态监听

    1.添加权限 2.获取ConnectivityManager 3监听网络状态 网络监听广播

  • android监听网络变化

    清单文件申请权限ACCESS_NETWORK_STATE 新建广播接收者继承BroadcastReceiver,重...

  • android开发的小白笔记

    第一次android开发功能,遇到了很多问题,也学习到了不少,小白笔记,从现在开始~~ 1. 监听键盘收起: ps...

网友评论

      本文标题:android网络监听学习笔记

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