我的应用的某些用户说电池很快耗尽。我已经确定了它们何时启用了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;
}
}
答案 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;
}