安卓学习之-ConnectivityManager(判断网络连接)
2016-06-30 21:34
549 查看
/** * Android 网络判断类,用来判断网络状态 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 使用方法: (1)先初始化 //初始化网络状态检测类 NetworkStateUtils.instance().init(this); (2)判断是否联网 NetworkStateUtils.instance().isNetworkConnected(); * @author admin * */ public class NetworkStateUtils { //此处用了单例设计模式,系统中此类对象只能存在一个,适用场景: // 1. 应用中某个实例对象需要频繁的被访问。 // 2. 应用中每次启动只会存在一个实例。如账号系统,数据库系统。 static NetworkStateUtils s_m = null; private Context context; //私有化构造方法 private NetworkStateUtils() { } //给context变量赋值 public void init(Context ctx) { context = ctx; } public static synchronized NetworkStateUtils instance() { if (s_m == null) { s_m = new NetworkStateUtils(); } return s_m; } /** * 判断是否有网络连接 * @return */ public boolean isNetworkConnected() { if (context == null) { return false; } ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity == null) { return false; } else { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } /** * 判断WIFI网络是否可用 * @return */ public boolean isWifiConnected() { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWiFiNetworkInfo = mConnectivityManager .getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mWiFiNetworkInfo != null) { return mWiFiNetworkInfo.isAvailable(); } } return false; } /** * 判断MOBILE网络是否可用 * @return */ public boolean isMobileConnected() { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mMobileNetworkInfo = mConnectivityManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mMobileNetworkInfo != null) { return mMobileNetworkInfo.isAvailable(); } } return false; } /** * * @return int返回联网类型 */ public int getConnectedType() { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager .getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { return mNetworkInfo.getType(); } } return -1; } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件