Android编程判断网络连接是否可用的方法
作者:天使之翼 发布时间:2021-06-25 20:25:03
本文实例讲述了Android编程判断网络连接是否可用的方法。分享给大家供大家参考,具体如下:
为了提高用户体验,我们在开发 android 应用的过程需要联网获取数据的时候我们首先要做的一步就是:
1.判断当前手机是否打开了网络
2.打开了网络是否可以上网
然后再去执行联网逻辑,避免没联网做不必要的工作!
通常情况下,我们是这样判断的
public static boolean isNetAvailable(Context context) {
ConnectivityManager connectManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return (connectManager.getActiveNetworkInfo() != null);
}
但是这样只完成了第一步,判断网络是否打开,
注意:打开并不代表就可以上网,
观察发现 NetworkInfo 有一个方法:
NetworkInfo.isAvailable()
官方的解释是
Indicates whether network connectivity is possible. A network is unavailable when a persistent or semi-persistent condition prevents the possibility of connecting to that network. Examples include
The device is out of the coverage area for any network of this type.
The device is on a network other than the home network (i.e., roaming), and data roaming has been disabled.
The device's radio is turned off, e.g., because airplane mode is enabled.
Returns:
true if the network is available, false otherwise
他列举了几种网络已连接但不可以上网的情况,
所以我们这样改改就好了:
public static boolean isNetAvailable(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
return (info != null && info.isAvailable());
}
希望本文所述对大家Android程序设计有所帮助。


猜你喜欢
- 前言SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对J
- 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,
- 第一个System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets);&nb
- 实体类时间格式化java 实体类 时间格式化注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:s
- 前言最近因为工作的需要,在写一个基于springmvc+spring+mybatis的项目,其中涉及用ajax向controller发送数据
- 一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有
- 如果想分析Android下 某个APP的网络数据交互,需要在Android手机上抓包,最常用的抓包工具非tcpdump莫属,用tcpdump
- Android Fragment滑动组件ViewPager的实例详解1适配器FragmentPagerAdapter的实现对于Fragmen
- 建议缓存放到 service 层,你可以自定义自己的 BaseServiceImpl 重写注解父类方法,继承自己的实现。为了方便,这里我们将
- 前言代码库:https://gitee.com/leo825/springboot-learning-parents.git之前写过《Spr
- 关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)应用场景:很多时候我们想要在某个类加载完毕时
- java编码中经常用到代理,代理分为静态代理和 * 。其中 * 可以实现spring中的aop。一、静态代理:程序运行之前,程序员就要编
- Java HashSetHashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。
- REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系
- 最近JAVA和JSwing上手练习了一下贪吃蛇,供大家参考,具体内容如下欢迎交流和加入新的内容用到了JSwing,下面是一些具体的思路实现&
- ajax简介 Ajax 即“Asynchronous Javascript An
- 本文主要研究的是关于Java中重载,重写,多态,静态绑定、动态绑定的相关内容,具体如下。重载,英文名是overload,是指在一个类中定义了
- 在android开发中,经常会遇到一个view需要它能够支持滑动的需求。下面通过本篇文章给大家介绍android view移动的六种方法。l
- 1:Group的功能Group可以管理一组节点Group可以对管理的节点进行增删改查的操作Group可以管理节点的属性1.2:看看JDKSE
- 我本地的springboot版本是2.5.1,后面的分析都是基于这个版本 <parent> &nbs