在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当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;
}

更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. Android超详细环境搭建方法!
  3. [置顶] 《老罗的Android之旅》导读PPT
  4. Android(安卓)操作系统获取Root权限 原理详细解析
  5. 同程面试经历 android开发工程师
  6. Android(安卓)cavas将横向字体转换为竖直rotate(),drawText(),se
  7. Android笔记二十六.Android异步任务处理(AsyncTask)
  8. 关于Android混淆的开源框架Mess的学习与分析
  9. Android压缩图片和libjpeg库

随机推荐

  1. Android内存管理机制之一:lowmemory kille
  2. Android计算器低级错误?都是二进制惹的祸!
  3. android游戏引擎初探
  4. Android activity intent 入门
  5. Android(安卓)Studio Intent使用(显式、
  6. ios8.0正式版推送 苹果教大家如何从Andro
  7. Android消息机制(六) 总结
  8. Android系统启动流程解析
  9. 【Android 内存优化】Android Profiler
  10. 【Android】结合源码解析Android消息队列