即使未连接到 Android 上的 WiFi 网络,如何检查 Wi-Fi 开关状态 'ON' 或 'OFF'

How to check Wi-Fi switch state 'ON' or 'OFF' even if not connected to a WiFi network on Android

我需要开发一项功能,要求检查 Wi-Fi 设置状态 'ON' 或 'OFF',即使在 Android 上未连接到 WiFi 网络也是如此!我需要显示一个弹出窗口!

 public static boolean CheckWifiConnection(Context context) {
    ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService (Context.CONNECTIVITY_SERVICE);
    return conMgr.getActiveNetworkInfo() != null
            && conMgr.getActiveNetworkInfo().isAvailable();
}

举个例子:假设我在公交车上,我打开了WiFi。它没有连接到 wifi 网络,因为附近没有 WiFi 路由器。那么我的应用程序如何知道 wifi 是打开还是关闭。

我认为你应该使用 ConnectivityManager

ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
    @Override
    public void onAvailable(Network network) {
        // network available
    }

    @Override
    public void onLost(Network network) {
        // network unavailable
    }
};

How to check a type of connection

ConnectivityManager

您可以使用ConnectivityManager获取网络状态

private boolean isNetworkAvailable() {
            ConnectivityManager connectivityManager
                    = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
            return activeNetworkInfo != null && activeNetworkInfo.isConnected();
        }

对于这个问题,我可以使用 WifiManager

public static boolean CheckWifiSwitch(Context context) {
    WifiManager wifiMgr = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    return wifiMgr.isWifiEnabled();
}

WifiManager