安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接
安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是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连接相关推荐
- 移动端判断手机横竖屏状态及加载相应样式或内容的解决方案
移动端的开发过程中,免不了要判断横竖屏,然后在执行其他操作,比如分别加载不同样式或内容等等. 首先在做移动端开发的时候,在HTML页面head中加入如下代码 <meta name="v ...
- 移动端判断手机横竖屏状态
禁用用户自动缩放功能: <meta name="viewport" content="width=device-width, initial-scale=1.0, ...
- linux netstat Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告. Netstat ...
- R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe、按照多列对数据进行全连接
R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe.按照多列对数据进行全连接 目录
- Android.网络连接状态(联网,2g,3g,wifi等)
net与wap什么意思 WAP上网所谓WAP(Wireless Application Protocol)即无线应用协议,是一项全球性的网络通信协议.WAP使移动Internet 有了一个通行的标准, ...
- uniapp 判断手机网络状态
代码 uni.getNetworkType({complete: e => {let networkType = e.networkType || 'none';switch (networkT ...
- Android判断手机的电池状态
第一步:注册广播Intent.ACTION_BATTERY_CHANGED 第二步: int status = intent.getIntExtra("status", 0);// ...
- 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 ...
- android 获取手机网络状态
与网络相关的,就经常要做网络状态判断及信息获取.用到的类ConnectivityManager 和NetworkInfo //获取网络连接管理者ConnectivityManager connecti ...
最新文章
- html页面不显示横向滚动条,css横向滚动条不显示?
- 对javascript作用域链的理解
- 没被同事卷死,被司机卷死了...
- 【TarsosDSP】TarsosDSP 简介 ( TarsosDSP 功能 | 相关链接 | 源码和相关资源收集 | TarsosDSP 示例应用 | TarsosDSP 源码路径解析 )
- 基于java 工单管理_实训任务工单1-2(编写规范Java代码) 实训任务工单1-2(编写规范Java代码).docx_学小易找答案...
- Mac安装RocketMQ和可视化控制台教程
- char类型包括数字吗java_Java char 与 Character
- Python编写编程作业批量自动打分程序的思路与实现
- IT运维岗位可以分为哪几种?10个运维岗详解
- 最直白的编译原理-基础知识(清华-王书3版)
- 数据库设计的阶段任务
- frameworks/base/core/res/res/values/symbols.xml:3915: error: no definition for declared symbol解决办法
- 【二级等保】二级等保安全物理环境要求有哪些?
- 最强神作!Crysis深度剖析与优化指南
- android极光推送 消息穿透广告弹窗,极光推送弹出两次消息,请大佬们帮忙指点迷津...
- L1, L2, smooth_L1 Loss函数python实现
- PCM音频格式的深入理解
- 关于微新分享PC微信端成功,手机微信失败
- 使用无线局域网(WLAN)更需要注意加强安全防范
- Python简要学习教程
热门文章
- Vue项目保存代码之后页面自动更新
- 中国光伏企业反对美国设卡
- java+ssh+mysql电影订票网
- phpcms2008与ucenter、discuz的整合办法
- hdu5468 Puzzled Elena(容斥 莫比乌斯反演)
- php,验证身份证,年龄,归属地址,性别
- 开发基础 - 总结 - 数据类型(特性 方法) 字符编码
- 固安天地人计算机学校,河北固安县共有多少个学校?
- thymeleaf 自定义标签属性
- 集团企业运营管控平台建设实施方案 集团企业信息化整体解决方案.pptx