安卓监听网络状态改变
来源:互联网 发布:2017年网络新词 编辑:程序博客网 时间:2024/05/19 00:44
利用广播的方式去监听网络状态的变化
Action:
public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
广播接受者类:
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;import android.util.Log;public class NetworkStateReceiver extends BroadcastReceiver {private final String TAG = "NetworkState";@Overridepublic void onReceive(Context context, Intent intent) { if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { //获取手机的连接服务管理器,这里是连接管理器类 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); State wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); State mobileState = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); if (wifiState != null && mobileState != null && State.CONNECTED != wifiState && State.CONNECTED == mobileState) { Log.d(TAG, "移动网络连接成功"); } else if (wifiState != null && mobileState != null && State.CONNECTED == wifiState && State.CONNECTED != mobileState) { Log.d(TAG, "WIFI网络连接成功"); } else if (wifiState != null && mobileState != null && State.CONNECTED != wifiState && State.CONNECTED != mobileState) { Log.d(TAG, "手机无网络"); } }}
}
注册广播
NetworkStateReceiver receiver = new NetworkStateReceiver();IntentFilter filter = new IntentFilter();filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(receiver, filter);Log.d(TAG, "注册广播");
取消广播
unregisterReceiver(receiver);Log.d(TAG, "取消注册");
然后还有一个问题,在网络断开的时候会监听到两次无网络,后续有时间解决一下。
0 0
- 安卓监听网络状态改变
- 监听网络状态改变
- 安卓使用广播监听网络状态
- 关于安卓监听网络状态
- 安卓监听APP网络状态变化
- 监听网络状态的改变
- 监听网络状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- android 监听网络连接状态的改变
- 安卓网络监听
- 安卓通话状态监听
- android监听手机网络连接状态改变的后台服务
- PostgreSQL——Psql Command to Attach Gdb to Backend
- java 多线程 sleep() wait() yield() join()方法解析
- 码农小汪-剑指Offer之13 -反转链表
- java.lang.IllegalArgumentException: You must not call setTag() on a view Glide is targeting
- android 金额输入框(小数点后两位)
- 安卓监听网络状态改变
- lightoj 1159 - Batman LCS
- TweenLite 使用详解(译文) 转载
- 2016.03.30回顾
- Android手写优化
- 三角形类雏形
- cocos2dx 3.3 + lua 学习笔记(01)--- math库
- POJ 3522 Slim Span(最小生成树-Kruskal)
- Git笔记--SAE