iOS 判断手机蜂窝煤数据是否打开

#import <sys/socket.h>
#import <netinet/in.h>
#import <netinet6/in6.h>
#import <arpa/inet.h>
#import <ifaddrs.h>
#import <netdb.h>

#define IOS_CELLULAR    @"pdp_ip0" //WWAN地址,即 ip

- (BOOL)isReachableViaWWAN {
    
    struct ifaddrs *interfaces = NULL;
    struct ifaddrs *temp_addr = NULL;
    int success = 0;
    success = getifaddrs(&interfaces);
    if (success == 0) {
        // Loop through linked list of interfaces
        temp_addr = interfaces;
        while(temp_addr != NULL) {
            if(temp_addr->ifa_addr->sa_family == AF_INET) {
                // Check if interface is pdp_ip0 which is the wwan connection on the iPhone
                NSString *ifa_name = [NSString stringWithUTF8String:temp_addr->ifa_name];
                if([ifa_name isEqualToString:IOS_CELLULAR]) {
                   return YES;
                }
            }
            temp_addr = temp_addr->ifa_next;
        }
    }
    // Free memory
    freeifaddrs(interfaces);
    return NO;
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。