android - 在android中检查Wifi是否已连接的正确方法

标签 android wifi android-wifi wifimanager android-connectivitymanager

对于我的应用程序,我需要确保用户在与服务器联系之前已连接到 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/

相关文章:

android - WifiManager.addNetwork 成功但 enableNetwork 失败

android - 为什么两个相同的字符串不相等?

android - Android 上的 WiFi 网络共享

Android Studio C++ NDK 库示例

ios - 获取启用 Wifi 的设备的 Wifi 可用性通知

webserver - 如何在没有互联网的情况下通过 wifi 为网站提供服务?

linux - 是否可以将 wpa_supplicant.conf 转换为 NetworkManager?

php - 使用 GCM 向多个 android 设备发送推送通知

java - 使用 AutoValue 时无法将 JSON 转换为 ArrayList

android - 从 Android 上的相机保存图像中的 strip