【Android】网络状态
16lz
2021-12-04
package lizhen.network;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;public class NetworkState {private Context context;private ConnectivityManager connectivityManager; //網絡連接管理private State mobile; //移動網絡狀態private State wifi; //WIFI網絡狀態public NetworkState(Context context) {this.context = context;init();}/** * 初始化 * */private void init() {connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);}/** * 當前網絡是否已連接 * @return true 網絡已連接<br />false 其它 * */public boolean isConnected() {boolean result = false;mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();result = (mobile == State.CONNECTED || wifi == State.CONNECTED);return result;}/** * 當前網絡是否正在連接 * @return true 網絡正在連接<br />false 其它 * */public boolean isConnecting() {boolean result = false;mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();result = (mobile == State.CONNECTING || wifi == State.CONNECTING);return result;}}
通过调用Context的方法getSystemService(Context.CONNECTIVITY_SERVICE)可以返回ConnectivityManager实例,使用ConnectivityManager,我们可以获取当前网络的状态。
以上代码作为示例,检查当前网络(包括移动网络和WIFI网络)是否已连接或是否正在连接。
注:网络状态有如下6种(定义在NetworkInfo.State中)
- CONNECTED 已连接
- CONNECTIONG 正在连接
- DISCONNETED 已断开
- DISCONNETING 正在断开
- SUSPENDED 已挂起
- UNKNOW 未知
更多相关文章
- android NetWorkHelper 网络工具类
- android取得当前网络连接状态
- android判断是否连接网络
- Android(安卓)网络操作(上传下载等)
- Android之常用功能代码
- 【android】监听网络变化连续多个广播的问题解决
- Android开发学习笔记整理(16)-网络请求
- Android(安卓)OkHttp 源码解析 - 拦截器
- android 网络检测