標籤:
首先列出幾個簡單的資訊
#pragma makr- app版本-(NSString *)getVersionCode{ NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; return [infoDictionary objectForKey:@"CFBundleShortVersionString"];}#pragma mark-裝置ID-(NSString *)getDeviceId{ return [[UIDevice currentDevice].identifierForVendor UUIDString];}#pragma mark- app作業系統-(NSString *)getAppOs{ return [[UIDevice currentDevice]systemVersion];}#pragma mark- 終端作業系統版本-(NSString *)getTerminalOs{ CGFloat sysVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; return [NSString stringWithFormat:@"%f",sysVersion];}#pragma mark- 終端型號-(NSString *)getDevModel{ return [[UIDevice currentDevice]model];}
擷取網路類型的方法如下
-(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews]; NSString *state = [[NSString alloc]init]; int netType =0; //擷取到網路返回碼 for (id childin in children) { if ([childin isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) { //擷取到狀態列 netType = [[childin valueForKeyPath:@"dataNetworkType"]intValue]; switch (netType) { case 0: state = @"無網路"; //無網模式 break; case 1: state = @"2G"; break; case 2: state = @"3G"; break; case 3: state = @"4G"; break; case 5: { state = @"WIFI"; } break; default: break; } } } return state;}
擷取IP地址
#pragma mark- 擷取ip地址-(NSString *)deviceIPAdress { NSString *address = @"擷取失敗"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; success = getifaddrs(&interfaces); if (success == 0) { // 0 表示擷取成功 temp_addr = interfaces; while (temp_addr != NULL) { if( temp_addr->ifa_addr->sa_family == AF_INET) { if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } freeifaddrs(interfaces); return address; }
ios 有關裝置資訊