以下是使用 Objective-C 代码判断是否打开蜂窝网络权限和判断 Wi-Fi 网络权限的示例:

判断是否打开蜂窝网络权限:

#import <CoreTelephony/CTCellularData.h>

- (BOOL)isCellularDataEnabled {
    CTCellularData *cellularData = [[CTCellularData alloc] init];
    CTCellularDataRestrictedState state = cellularData.restrictedState;
    
    if (state == kCTCellularDataNotRestricted || state == kCTCellularDataRestrictedStateUnknown) {
        return YES; // 蜂窝网络权限已开启
    } else {
        return NO; // 蜂窝网络权限未开启
    }
}

判断 Wi-Fi 网络权限:

#import <SystemConfiguration/CaptiveNetwork.h>

- (BOOL)isWiFiEnabled {
    NSArray *interfaces = (__bridge_transfer NSArray *)CNCopySupportedInterfaces();
    NSDictionary *info = nil;
    
    for (NSString *interfaceName in interfaces) {
        info = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)interfaceName);
        
        if (info && [info count]) {
            break;
        }
    }
    
    if ([info objectForKey:@'SSID']) {
        return YES; // Wi-Fi 网络权限已开启
    } else {
        return NO; // Wi-Fi 网络权限未开启
    }
}

请注意,这些代码只能检查用户是否开启了蜂窝网络权限和 Wi-Fi 网络权限,但无法直接打开或关闭这些权限。若要请求用户开启或关闭这些权限,您需要使用对应的系统 API,例如使用 CTCellularData 请求蜂窝网络权限或使用 NEHotspotConfigurationManager 请求 Wi-Fi 网络权限。

iOS 开发:判断蜂窝网络和 Wi-Fi 网络权限 (Objective-C 代码)

原文地址: https://www.cveoy.top/t/topic/o7DO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录