安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接

开门见山地说,安卓APP在实际开发应用场景中很容易遇到需要判断网络连接状态的需求,毕竟对于手机APP来说,没有网络的情况并不稀奇,可往往这种时候,用户并不知道是自己手机网络的问题,一般会默认觉得这APP怎么这么慢,那么这个时候,作为一个合格的甩锅人,当然是得想办法让用户知道锅不在我们开发人员的身上(理直气壮)!那么就需要有一个合适的方式来实现这个功能。
上代码:

/*** @Title: isNetworkConnected* @Description: 网络是否可用* @param @param context* @param @return* @return boolean*/public static boolean isNetworkConnected(Context context) {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo[] info = cm.getAllNetworkInfo();if (info != null) {for (int i = 0; i < info.length; i++) {if (info[i].getState() == NetworkInfo.State.CONNECTED) {return true;} else {continue;}}}return false;}

调用时:

if(!ConnectUtil.isNetworkConnected(context)){Toast.makeText(context, "检测不到可用的网络连接", Toast.LENGTH_LONG).show();}

通过上图的代码我们就可以对APP网络状态能否使用做出一个判断,但是但是,对手机网络状态的监听是需要在APP整个生命周期里去监听的,不可能去调像上面一样就调个方法就搞定的,所以我们需要是要开启一个整个生命周期的网络检测的服务,使得在APP使用的过程中当网络出现问题时就能弹出提示,这样的处理才能让用户给你打好评,嘿嘿!
所以我们就需要在AndroidManifest.xml中去加入一个网络检测服务。

  <!-- 网络监测服务 --><service android:name="//这里网络服务的代码" ><intent-filter><action android:name="//这里网络服务的代码" /></intent-filter></service>

那么具体详细的完整代码我放在下面的链接里面,大家可以下载来看,里面都有详细的注释的。此外代码里还含有对网络连接方式是移动流量还是WIFI连接的判断,毕竟如果你做的是一个视频类的手机应用,视频播放前不提示用户用WIFI播放,等到最后给用户一个惊喜的话,相信用户也会给到你一个惊吓的。

安卓实现网络情况监测,网络连接是否有效,判断移动网络还是WIFI

以上就是本篇博客的全部内容,希望大家能够给与支持,谢谢!

安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接相关推荐

  1. 移动端判断手机横竖屏状态及加载相应样式或内容的解决方案

    移动端的开发过程中,免不了要判断横竖屏,然后在执行其他操作,比如分别加载不同样式或内容等等. 首先在做移动端开发的时候,在HTML页面head中加入如下代码 <meta name="v ...

  2. 移动端判断手机横竖屏状态

    禁用用户自动缩放功能: <meta name="viewport" content="width=device-width, initial-scale=1.0, ...

  3. linux netstat Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

    在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告. Netstat ...

  4. R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe、按照多列对数据进行全连接

    R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe.按照多列对数据进行全连接 目录

  5. Android.网络连接状态(联网,2g,3g,wifi等)

    net与wap什么意思 WAP上网所谓WAP(Wireless Application Protocol)即无线应用协议,是一项全球性的网络通信协议.WAP使移动Internet 有了一个通行的标准, ...

  6. uniapp 判断手机网络状态

    代码 uni.getNetworkType({complete: e => {let networkType = e.networkType || 'none';switch (networkT ...

  7. Android判断手机的电池状态

    第一步:注册广播Intent.ACTION_BATTERY_CHANGED 第二步: int status = intent.getIntExtra("status", 0);// ...

  8. mac 不能连接wi-fi_如何在Mac OS X中查看当前的Wi-Fi连接速度

    mac 不能连接wi-fi Ever since I've been using my new MacBook Air, I've been befuddled by how to do some o ...

  9. android 获取手机网络状态

    与网络相关的,就经常要做网络状态判断及信息获取.用到的类ConnectivityManager 和NetworkInfo //获取网络连接管理者ConnectivityManager connecti ...

最新文章

  1. html页面不显示横向滚动条,css横向滚动条不显示?
  2. 对javascript作用域链的理解
  3. 没被同事卷死,被司机卷死了...
  4. 【TarsosDSP】TarsosDSP 简介 ( TarsosDSP 功能 | 相关链接 | 源码和相关资源收集 | TarsosDSP 示例应用 | TarsosDSP 源码路径解析 )
  5. 基于java 工单管理_实训任务工单1-2(编写规范Java代码) 实训任务工单1-2(编写规范Java代码).docx_学小易找答案...
  6. Mac安装RocketMQ和可视化控制台教程
  7. char类型包括数字吗java_Java char 与 Character
  8. Python编写编程作业批量自动打分程序的思路与实现
  9. IT运维岗位可以分为哪几种?10个运维岗详解
  10. 最直白的编译原理-基础知识(清华-王书3版)
  11. 数据库设计的阶段任务
  12. frameworks/base/core/res/res/values/symbols.xml:3915: error: no definition for declared symbol解决办法
  13. 【二级等保】二级等保安全物理环境要求有哪些?
  14. 最强神作!Crysis深度剖析与优化指南
  15. android极光推送 消息穿透广告弹窗,极光推送弹出两次消息,请大佬们帮忙指点迷津...
  16. L1, L2, smooth_L1 Loss函数python实现
  17. PCM音频格式的深入理解
  18. 关于微新分享PC微信端成功,手机微信失败
  19. 使用无线局域网(WLAN)更需要注意加强安全防范
  20. Python简要学习教程

热门文章

  1. Vue项目保存代码之后页面自动更新
  2. 中国光伏企业反对美国设卡
  3. java+ssh+mysql电影订票网
  4. phpcms2008与ucenter、discuz的整合办法
  5. hdu5468 Puzzled Elena(容斥 莫比乌斯反演)
  6. php,验证身份证,年龄,归属地址,性别
  7. 开发基础 - 总结 - 数据类型(特性 方法) 字符编码
  8. 固安天地人计算机学校,河北固安县共有多少个学校?
  9. thymeleaf 自定义标签属性
  10. 集团企业运营管控平台建设实施方案 集团企业信息化整体解决方案.pptx