Android判断WiFi是否可用的可靠方法

移动开发 Android
当wifi不可用时应该提示用户wifi已经不可用了,是否继续,因为如果wifi 掉了,那么程序可能采用3G卡或其他的收费的渠道使用网络,会导在不知情时产生大量的上网费用,本文为大家介绍了实现之一功能的可靠方法。

在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当wifi不可用时应该提示用户wifi已经不可用了,是否继续,因为如果wifi 掉了,那么程序可能采用3G卡或其他的收费的渠道使用网络,会导在不知情时产生大量的上网费用。通过查看android的api可使用下列方法进行判断:

Java代码

  1. public static boolean isWiFiActive(Context inContext) {   
  2.             Context context = inContext.getApplicationContext();   
  3.             WifiManager wifiManager = (WifiManager) context   
  4.                     .getSystemService(Context.WIFI_SERVICE);   
  5.             return wifiManager.isWifiEnabled();   
  6.         }   

在模拟器上使用这个方法时,可以正确判断wifi是否可用,但是在真机上就判断不出来。wifi是断开的,但是返回的结果true,造成wifi判断不准确。经过尝试可使用如下的方法判断方能正确:

Java代码

  1. public static boolean isWiFiActive(Context inContext) {   
  2.             Context context = inContext.getApplicationContext();   
  3.             ConnectivityManager connectivity = (ConnectivityManager) context  .getSystemService(Context.CONNECTIVITY_SERVICE);   
  4.             if (connectivity != null) {   
  5.                 NetworkInfo[] info = connectivity.getAllNetworkInfo();   
  6.                 if (info != null) {   
  7.                     for (int i = 0; i < info.length; i++) {   
  8.                         if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {   
  9.                             return true;   
  10.                         }   
  11.                     }   
  12.                 }   
  13.             }   
  14.             return false;   
  15.         }   

 

责任编辑:闫佳明 来源: oschina
相关推荐

2010-09-16 15:20:36

sql server表

2010-06-01 15:20:11

MySQL表单

2017-02-08 11:30:51

PHP判断数组

2022-08-25 14:48:11

变量前端

2010-09-02 09:29:02

SQL删除字段

2015-05-28 09:52:21

PHP判断数组为空

2022-11-10 14:33:40

Kubernetes容器

2019-04-25 09:36:18

Kafka高可靠高可用

2010-01-28 15:49:17

Android判断网络

2011-06-08 10:11:25

JavaScript

2012-05-02 09:16:49

ERP

2024-07-22 15:42:08

Linux字符串

2018-08-10 00:11:23

2011-03-09 11:10:35

数据泄漏DLP

2013-12-06 15:31:49

TechEd2013

2014-04-11 09:25:11

HeartbeatOpenSSLheartbleed漏

2010-09-10 16:12:08

sql函数判断

2011-07-13 09:42:05

NetApp FileSnapshot

2013-02-01 14:13:41

服务器内存可靠性可用性

2013-11-04 10:15:57

Windows 8.1解决办法
点赞
收藏

51CTO技术栈公众号