`
yangwei0915
  • 浏览: 465245 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

android 中判断WiFi是否可用的可靠方法

阅读更多

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

public static boolean isWiFiActive(Context inContext) {
		Context context = inContext.getApplicationContext();
		WifiManager wifiManager = (WifiManager) context
				.getSystemService(Context.WIFI_SERVICE);
		return wifiManager.isWifiEnabled();
	}

 

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

public static boolean isWiFiActive(Context inContext) {
		Context context = inContext.getApplicationContext();
		ConnectivityManager connectivity = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity != null) {
			NetworkInfo[] info = connectivity.getAllNetworkInfo();
			if (info != null) {
				for (int i = 0; i < info.length; i++) {
					if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
						return true;
					}
				}
			}
		}
		return false;
	}

 

分享到:
评论
3 楼 harvin 2014-07-09  
yangwei0915 写道
可以转载!

谢谢。
2 楼 yangwei0915 2014-05-13  
可以转载!
1 楼 harvin 2014-03-25  
受教了,感谢博主。另外,我能转载吗?

相关推荐

    checkposition-1.0.rar_android_android wifi signal

    标题"checkposition-1.0.rar_android_android wifi signal"表明这是一个针对Android系统的应用,其主要功能是检查并显示可用WiFi信号的强度。 在Android系统中,开发者可以利用Android SDK提供的Wi-Fi相关API来获取...

    Android中判断手机是否联网实例

    在Android应用开发中,判断手机是否联网是一项基本的需求,它能确保应用在必要的时候能够正常地获取网络数据或发送请求。下面将详细讲解如何在Android中实现这一功能,包括XML配置文件的设置以及功能代码的编写。 ...

    Android中判断网络连接是否可用及监控网络状态

    下面我们将详细探讨如何在Android中判断网络连接是否可用以及如何监控网络状态。 首先,要获取网络信息,你需要在`AndroidManifest.xml`文件中添加相应的权限。这是通过在文件中插入以下XML代码实现的: ```xml ...

    Android 判断是否有外网连接

    总结一下,Android判断是否有外网连接通常需要结合`ConnectivityManager`和`ping`命令来实现。`ConnectivityManager`可以检查设备是否已连接到网络,而`ping`命令可以进一步确认网络是否可达。这两种方法结合使用,...

    判断是否联网

    在标题“判断是否联网”中,我们主要关注的是如何检测Android设备的网络状态,包括WiFi和移动数据。以下是一些关于Android中判断网络连接是否可用的关键知识点: 1. **ConnectivityManager**: 这是Android系统提供...

    Android网络状态变动监听

    针对2G和3G网络,当网络不可用时,我们可以通过检查`NetworkInfo`对象的`isConnected()`方法来判断。如果返回`false`,则表示没有网络连接。在这种情况下,我们可能需要提示用户网络已断开,并采取相应的处理措施,...

    超实用的android网络工具类

    在 Android 中,网络工具类通常用于判断网络状态、获取当前网络连接类型、检测 WIFI 和 MOBILE 网络是否可用等。 在 Android 中,网络工具类通常是通过使用 ConnectivityManager 类来实现的。ConnectivityManager ...

    3G和wifi的切换监听

    在Android系统中,开发者经常会遇到网络状态变化的问题,比如3G和WiFi之间的切换,以及网络断开的情况。针对这些需求,我们可以创建一个监听器来实时监控网络状态,并做出相应的处理。 首先,我们要理解3G和WiFi两...

    android实用GPRS连接归类.pdf

    总的来说,Android开发中的GPRS连接管理涉及到对当前活动网络的判断、APN的设置和切换。开发者需要考虑到不同网络环境下的兼容性和用户便捷性,通过合理的编程策略确保应用程序在网络方面的稳定性和可靠性。

    Android离线数据同步方案.doc

    在Android应用开发中,离线数据同步方案是一个关键的设计元素,尤其对于那些在网络不稳定或无网络环境下仍需保持部分功能的应用来说。以下是对这个方案的详细解析: 首先,离线数据同步的核心在于处理网络不可用时...

    internet.zip

    通过调用`getActiveNetworkInfo()`或`getAllNetworkInfos()`方法,可以得到关于网络连接的`NetworkInfo`对象,再通过`isConnected()`或`isConnectedOrConnecting()`判断网络是否可用。 2. **BroadcastReceiver**:...

    Android通过ConnectivityManager检查网络状态

    例如,检查`ConnectivityManager`的`getNetworkInfo()`方法返回的`NetworkInfo`对象,判断移动网络(`TYPE_MOBILE`)和Wi-Fi网络(`TYPE_WIFI`)是否连接。 ```java connectionReceiver = new BroadcastReceiver() ...

    AppUpdate.zip

    1. 监听网络状态变化,判断是否在Wi-Fi环境下。 2. 检查服务器是否有新版本更新。 3. 下载新版本的APK文件。 4. 安装下载好的APK文件,提示用户确认安装。 在整个过程中,需要注意权限管理(如读写外部存储、网络...

    connection_checker:Android库,用于检查设备的互联网连接

    在Android应用开发中,确保设备具有有效的互联网连接是至关重要的,因为许多功能和服务依赖于网络。"connection_checker"是一个专门针对这种情况设计的Android库,它提供了简单易用的方法来检测和验证设备的网络连接...

Global site tag (gtag.js) - Google Analytics