2013-11-15 58 views
0

我的应用程序的某些用户说,电池快速流失。我已经确定,当他们有GPS和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; 
     } 

} 
+0

@OlafDietsche对不起,格式化。 – turtleboy

回答

1

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

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

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

+0

完美!非常感谢。 – turtleboy

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 =新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; 
    } 
相关问题