项目中难免会出现使用网络的情况,使用网络前得进行网络判断,看网上的网友一般有多种实现版本。

第一种:

// 是否有网络连接public static boolean isNetworkConnected() {if (App.getContext() != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) App.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null) {return mNetworkInfo.isAvailable();}}return false;}

第二种:

/*** 判断网络是否可用* * @param context* @return*/public static boolean isNetworkAvailable(Context context) {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (cm != null) {NetworkInfo[] info = cm.getAllNetworkInfo();if (info != null) {for (int i = 0; i < info.length; i++) {if (info[i].isConnected()) {return true;}}}}return false;}

其中主要的使用区别是isConnected()与isAvailable(),参考文章[3],总结5种连接状态情况:

在WLAN设置界面状态 输出
显示连接已保存,但标题栏没有,即没有实质连接上 输出为:not connect, available
显示连接已保存,标题栏也有已连接上的图标  输出为:connect, available
选择不保存后   输出为:not connect, available
选择连接,在正在获取IP地址时  输出为:not connect, not available
连接上后 输出为:connect, available

建议使用:

// 是否有网络连接public static boolean isNetworkConnected() {if (App.getContext() != null) {ConnectivityManager mConnectivityManager = (ConnectivityManager) App.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();if (mNetworkInfo != null) {return mNetworkInfo.isAvailable() && mNetworkInfo.isConnected();}}return false;}

参考:

[1] http://www.cnblogs.com/codeworker/archive/2012/04/23/2467180.html

[2] http://blog.csdn.net/heng615975867/article/details/17280227

[3] 关于NetworkInfo对象的isConnected()与isAvailable().http://www.oschina.net/question/54100_34632

转载于:https://www.cnblogs.com/ccdc/p/4432583.html

Android开发(七)——判断网络状态相关推荐

  1. android 开发中判断网络是否连接的代码

    在android的开发中,尤其是与访问网络有关的开发,都要判断一下手机是否连接上了网络,下面是一个判断是否连接网络的嗲吗片段: package cn.com.karl.util;import com. ...

  2. Android判断网络状态是否断开

    1.Android判断网络状态是否断开      不多说了,看代码吧! /** * 判断网络状态是否可用 * @return true: 网络可用 ; false: 网络不可用 */ public b ...

  3. android 网络代码是什么意思,Android判断网络状态的代码

    本文实例为大家分享了Android判断网络状态的具体代码,供大家参考,具体内容如下 一.权限 需要在AndroidManifest.xml 添加访问权限 二.判断连接状态 /** * 判断是否有网络连 ...

  4. iphone开发使用Reachability判断网络状态

    在使用Reachability判断网络状态时,我们可以下载苹果官网的Reachability.zip文件,解压之后有一个不错的实例供我们参考. 1.下载 http://developer.apple. ...

  5. Android开发本地及网络Mp3音乐播放器(十三)网络音乐搜索功能实现,歌名歌手专辑名搜索

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51298411 觉得博文有用,请点赞,请留言,请关注,谢谢!~ 实现功能: 实现网络音乐 ...

  6. Android开发本地及网络Mp3音乐播放器(二十)歌曲下载完成后通知主界面更新本地音乐

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51448597 项目源码(打赏5积分请点这边):http://download.csdn ...

  7. Android开发本地及网络Mp3音乐播放器(十二)创建NetMusicListAdapter、SearchResult显示网络音乐列表

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51290181 觉得博文有用,请点赞,请留言,请关注,谢谢!~ 实现功能: 实现NetM ...

  8. promise使用promise进行判断网络状态

    使用promise是为了达到一个并行异步的目的 // 判断网络状态networkState() {return new Promise((resolve, reject) => {uni.get ...

  9. android判断多个按钮,Android开发之判断有无虚拟按键(导航栏)的实例

    判断有无虚拟按键(导航栏) 现在很大一部分手机没有虚拟按键,一部分有.我们在做适配的时候可能会用到这方面的知识. 例如:屏幕填充整个屏幕的时候,没办法只能连导航栏一起填充了,但是这个不是我们想要的,我 ...

  10. android 判断安装微信,Android开发中判断手机是否安装了QQ或者微信

    下面一段代码给大家分享了android中判断手机是否安装了qq或者微信,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下吧 public static boolean isWeixinAv ...

最新文章

  1. 如何找到在SAP社区上经过SAP官方认可比较有影响力的SAP从业者
  2. python 运算及注释
  3. Qt creator5.7 OpenCV249之pyrUp函数(含源码下载)
  4. 二十五、MongoDB 索引 和 explain 的使用
  5. Java 轻量级锁原理详解(Lightweight Locking)
  6. Linux 在不重启的情况下识别新挂载的磁盘
  7. PSOLA基音同步叠加算法
  8. [SCOI2016]背单词
  9. dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
  10. 探索在Android中使用Emoji Font的方法
  11. matlab快速原型开发c语言,快速原型开发
  12. 分享一个自己做的记账的小程序 - 智能记账,欢迎朋友们体验
  13. 阿里云部署网站全流程(基于nodejs)
  14. java4android 教程_《Java4Android视频教程》学习笔记(三)
  15. linux命令中man使用不起,Linux中man命令起什么作用呢?
  16. android版本下载京东,京东下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  17. Kaggle经典项目——房价预测
  18. 新款 MacBook Pro 评测:更好的性能、免费的刘海和更好的显示器
  19. mac上传文件到阿里云ECS及scp命令使用
  20. 艺赛旗(RPA)python 的 tkinter 进度条的实现

热门文章

  1. 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
  2. JAVA中线程同步的方法(7种)汇总
  3. JZOJ 5606. 【NOI2018模拟3.27】Yja
  4. vba定义全局变量并赋值_利用VBA代码如何打开任意程序
  5. 教你保存在线视频文件
  6. Ubuntu复制相同的目录结构(不复制文件)
  7. 商店选址问题(Floyd)
  8. BZOJ 4422 (线段树、DP、扫描线、差分)
  9. php 正则表达式 ies,正则表达式模式修正符(/ies)
  10. Linux系统云主机教程,新开的linux云主机磁盘挂载教程