zoukankan      html  css  js  c++  java
  • android 中判断WiFi是否可用的可靠方法 ,android 是否联网

    http://alex-yang-xiansoftware-com.iteye.com/blog/619841

    在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当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   
    4.                 .getSystemService(Context.CONNECTIVITY_SERVICE);   
    5.         if (connectivity != null) {   
    6.             NetworkInfo[] info = connectivity.getAllNetworkInfo();   
    7.             if (info != null) {   
    8.                 for (int i = 0; i < info.length; i++) {   
    9.                     if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {   
    10.                         return true;   
    11.                     }   
    12.                 }   
    13.             }   
    14.         }   
    15.         return false;   
    16.     }  
  • 相关阅读:
    for循环使用详解(c语言版)
    在Spring中轻松写日志
    项目可行性分析的困难
    控制台游戏引擎CGE——贪吃蛇
    python做数据分析pandas库介绍之DataFrame基本操作
    什么是 JWT -- JSON WEB TOKEN
    .net core 单体应用基于策略模式授权
    ABP VNext 初始化数据库时报错
    ABP VNext简介及使用代码生成器ABPHelper自动生成代码
    使用jenkins 在docker中发布.net core应用
  • 原文地址:https://www.cnblogs.com/leaven/p/2613946.html
Copyright © 2011-2022 走看看