如何检测手机是扫描还是连接到wifi

时间:2013-11-15 14:00:21

标签: android wifi

我的应用的某些用户说电池很快耗尽。我已经确定了它们何时启用了GPS和wifi。

我有以下代码,我认为确定wifi是打开还是关闭。它总是返回没有连接。由于某种原因,我的手机无法连接到办公室wifi,所以数字。

我想要的是能够检测手机设置中是否已打开wifi。

我不确定我是否正确,但如果wifi已打开但未连接,是否仍会耗尽电池?

是否有任何代码告诉我wifi是打开还是关闭?

private static boolean isConnectedWiFi(Context context) {

    ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (mWifi.isConnected()) {

            return true;

        } else {

            return false;
        }

}

2 个答案:

答案 0 :(得分:1)

这段代码有助于检查Android设备上是否启用了Wi-Fi。

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()){
//wifi is enabled
}

您还可以使用wifi.getWifiState()获取当前的无线状态。

答案 1 :(得分:0)

使用此类检查设备是否与工作网络连接。 本课程适用于所有可能的互联网提供商。

public class ConnectionDetector {

private Context _context;

public ConnectionDetector(Context context){
    this._context = context;
}

/**
 * Checking for all possible internet providers
 * **/
public boolean isConnectingToInternet(){
    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].getState() == NetworkInfo.State.CONNECTED)
                  {
                      return true;
                  }

      }
      return false;
}

}

//连接检测器

  

ConnectionDetector cd = new ConnectionDetector(getApplicationContext());

并通过ConnectionDetector类的对象调用方法isConnectingToInternet(),以便检查Internet连接。 当互联网工作时,此方法将返回true,否则为false。

// Check if Internet present
    if (!cd.isConnectingToInternet()) {
        // Internet Connection is not present
        alert.showAlertDialog(
                MainActivity.this,
                "Alert!!",
                "Internet Connection is not on.Please check your network.",
                false);
        // stop executing code by return
        return;
    }