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

2020-07-20  本文已影响0人  JohnayXiao
#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;
    
}
上一篇下一篇

猜你喜欢

热点阅读