对于我的应用程序,我需要确保用户在与服务器联系之前已连接到 wifi。我找到了两种方法,但我不确定其中一种是否足够。
首先我添加这个:
WifiManager wifiManager = (WifiManager) getActivity().getApplicationContext()
.getSystemService(WIFI_SERVICE);
if (!wifiManager.isWifiEnabled()) {
buildAlertNoWifi();
showProgressDialog(false, "");
return;
}
然后我正在这样做:
ConnectivityManager cm = (ConnectivityManager) getActivity()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) { // connected to the internet
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
// connected to wifi
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
// connected to the mobile provider's data plan
Toast.makeText(getContext(), "Make sure you connect to wifi.", Toast.LENGTH_LONG).show();
return;
}
} else {
Toast.makeText(getContext(), "Make sure you connect to wifi.", Toast.LENGTH_LONG).show();
return;
}
所以我想知道wifiManager.isWifiEnabled()
是否返回设备是否连接到wifi或者只是打开了wifi。如果是的话,单独使用它就足够了吗?
最佳答案
我相信 WifiManager.isWifiEnabled()
仅检查设备的 wifi 是否已打开。请使用 NetworkInfo.isConnected()
或 NetworkInfo.isConnectedOrConnecting()
检查它是否连接到任何网络。
关于android - 在android中检查Wifi是否已连接的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42887849/