如何检查 WIFI 按钮是否启用 (iOS)

How to check if WIFI button is enabled (iOS)

我希望能够检查用户是否已连接到 WiFi,但未连接到网络。所以基本上我想检查设备设置页面上 WiFi 按钮的状态,以检查按钮是启用还是禁用。

目前我可以通过以下方式检查 Wifi 是否已连接到网络:

BOOL hasWiFiNetwork = NO;
NSArray *interfaces = CFBridgingRelease(CNCopySupportedInterfaces());
for (NSString *interface in interfaces)
{
    NSDictionary *networkInfo = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)(interface)));
    if (networkInfo != NULL)
    {
        hasWiFiNetwork = YES;
        break;
    }
    else
    {
        hasWiFiNetwork = NO;
        break;
    }
}

尝试此代码并使用可达性 class。

BOOL isConnectedProperly = ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == ReachableViaWiFi);

更新

事实证明这是不可能的,没有 API/Framework/BOOL 值可以做到这一点,因为 Apple 没有添加任何类型的功能来检查 WiFi 是否打开或关闭对于开发人员。正如这里很好地解释的那样:


那么这个post应该就是你想要的:

Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];

NetworkStatus status = [reachability currentReachabilityStatus];

if (status == ReachableViaWiFi) {
    // WiFi
}

else {
    // Either WiFi is off or we are not connected to a WiFi network.
}

首先您需要从 apple developer site 下载可达性文件 然后每次你想检查的地方添加这些代码。

-(BOOL)isConnectedTointernet{
BOOL status = NO;
Reachability *reachability = [Reachability reachabilityForInternetConnection];
int networkStatus = reachability.currentReachabilityStatus;
status = (networkStatus != NotReachable)? YES:NO;
return status;}