iphone-common-codes-ccteam源代码 CCSystem.m
来源:互联网 发布:cf卡镜像软件 编辑:程序博客网 时间:2024/05/21 09:56
//// System.m// PhoneManager//// Created by chenxu on 11-9-9.// Copyright 2011年 __MyComPanyName__. All rights reserved.//#import "CCSystem.h"#import "ifaddrs.h"#import "arpa/inet.h"#import <SystemConfiguration/SCSchemaDefinitions.h>#import <sys/sysctl.h>@implementation UIDevice(Other)- (NSString*)getSystemVersion //get system version e.g. 4.3.3(8J2){ NSString *systemVersion = [[UIDevice currentDevice] systemVersion]; NSUInteger firmwareVersion; NSMutableString *temp = [[NSMutableString alloc] init]; NSMutableString *ultimateSystemVersion = [NSMutableString string]; if ([systemVersion isEqualToString:@"4.3.3"]) {firmwareVersion = iPhone4_3_3; [temp appendString:iPhone4_3_3_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.3.2"]) {firmwareVersion = iPhone4_3_2; [temp appendString:iPhone4_3_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.3.1"]) {firmwareVersion = iPhone4_3_1; [temp :iPhone4_3_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.3"]) {firmwareVersion = iPhone4_3; [temp appendString:iPhone4_3_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.2.1"]) {firmwareVersion = iPhone4_2_1; [temp appendString:iPhone4_2_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.1"]) {firmwareVersion = iPhone4_1; [temp appendString:iPhone4_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.0.2"]) {firmwareVersion = iPhone4_0_2; [temp appendString:iPhone4_0_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.0.1"]) {firmwareVersion = iPhone4_0_1; [temp appendString:iPhone4_0_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"4.0"]) {firmwareVersion = iPhone4_0; [temp appendString:iPhone4_0_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"3.1.3"]) {firmwareVersion = iPhone3_1_3; [temp appendString:iPhone3_1_3_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"3.1.2"]) {firmwareVersion = iPhone3_1_2; [temp appendString:iPhone3_1_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"3.1"]) {firmwareVersion = iPhone3_1; [temp appendString:iPhone3_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"3.0.1"]) {firmwareVersion = iPhone3_0_1; [temp appendString:iPhone3_0_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"3.0"]) {firmwareVersion = iPhone3_0; [temp appendString:iPhone3_0_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"2.2.1"]) {firmwareVersion = iPhone2_2_1; [temp appendString:iPhone2_2_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"2.2"]) {firmwareVersion = iPhone2_2; [temp appendString:iPhone2_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"2.1"]) {firmwareVersion = iPhone2_1; [temp appendString:iPhone2_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"2.0.2"]) {firmwareVersion = iPhone2_0_2; [temp appendString:iPhone2_0_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"2.0.1"]) {firmwareVersion = iPhone2_0_1; [temp appendString:iPhone2_0_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"2.0"]) {firmwareVersion = iPhone2_0; [temp appendString:iPhone2_0_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.1.4"]) {firmwareVersion = iPhone1_1_4; [temp appendString:iPhone1_1_4_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.1.3"]) {firmwareVersion = iPhone1_1_3; [temp appendString:iPhone1_1_3_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.1.2"]) {firmwareVersion = iPhone1_1_2; [temp appendString:iPhone1_1_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.1.1"]) {firmwareVersion = iPhone1_1_1; [temp appendString:iPhone1_1_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.0.2"]) {firmwareVersion = iPhone1_0_2; [temp appendString:iPhone1_0_2_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.0.1"]) {firmwareVersion = iPhone1_0_1; [temp appendString:iPhone1_0_1_FIRMWARE_ID];} if ([systemVersion isEqualToString:@"1.0"]) {firmwareVersion = iPhone1_0; [temp appendString:iPhone1_0_FIRMWARE_ID];} [ultimateSystemVersion appendFormat:@"%@(%@)",systemVersion,temp]; [temp release]; return ultimateSystemVersion; return nil;}@end//取软件版本号NSString* getSoftwareVersion(){// return [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kSCPropNetIPv4Addresses]; return [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; }NSString * localWiFiIPAddress(){ BOOL success; struct ifaddrs * addrs; const struct ifaddrs * cursor; success = getifaddrs(&addrs) == 0; if (success) { cursor = addrs; while (cursor != NULL) { // the second test keePs from Picking uP the looPback address if (cursor->ifa_addr->sa_family == AF_INET /*&& (cursor->ifa_flags & IFF_LOOPBACK) == 0*/) { NSString *name = [NSString stringWithUTF8String:cursor->ifa_name]; if ([name isEqualToString:@"en0"]) // Wi-Fi adaPter return [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)]; NSLog(@"name: %@, address: %@", name, [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)]); } cursor = cursor->ifa_next; } freeifaddrs(addrs); } return @"无"; }//获取host的名称NSString * getHostname(){ char baseHostName[256]; // Thanks, Gunnar Larisch int success = gethostname(baseHostName, 255); if (success != 0) return nil; baseHostName[255] = '\0'; #if TARGET_IPHONE_SIMULATOR return [NSString stringWithFormat:@"%s", baseHostName];#else return [NSString stringWithFormat:@"%s.local", baseHostName];#endif}NSString* getIPAddress(){ BOOL success; struct ifaddrs * addrs; const struct ifaddrs * cursor; success = getifaddrs(&addrs) == 0; if (success) { cursor = addrs; while (cursor != NULL) { // the second test keePs from Picking uP the looPback address if (cursor->ifa_addr->sa_family == AF_INET /*&& (cursor->ifa_flags & IFF_LOOPBACK) == 0*/) { NSString *name = [NSString stringWithUTF8String:cursor->ifa_name]; if ([name isEqualToString:@"pdp_ip0"]) // return [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)]; NSLog(@"name: %@, address: %@", name, [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)]); } cursor = cursor->ifa_next; } freeifaddrs(addrs); } return @"无"; }BOOL memoryInfo(vm_statistics_data_t *vmStats) { mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT; kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)vmStats, &infoCount); return kernReturn == KERN_SUCCESS; } BOOL cpuInfo(vm_statistics_data_t *cpuStats) { mach_msg_type_number_t infoCount = HOST_CPU_LOAD_INFO_COUNT; kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO, (host_info_t)cpuStats, &infoCount); return kernReturn == KERN_SUCCESS; } void logMemoryInfo() { vm_statistics_data_t vmStats; if (memoryInfo(&vmStats)) { NSLog(@"free: %u\nactive: %u\ninactive: %u\nwire: %u\nzero fill: %u\nreactivations: %u\npageins: %u\npageouts: %u\nfaults: %u\ncow_faults: %u\nlookups: %u\nhits: %u", vmStats.free_count * vm_page_size, vmStats.active_count * vm_page_size, vmStats.inactive_count * vm_page_size, vmStats.wire_count * vm_page_size, vmStats.zero_fill_count * vm_page_size, vmStats.reactivations * vm_page_size, vmStats.pageins * vm_page_size, vmStats.pageouts * vm_page_size, vmStats.faults, vmStats.cow_faults, vmStats.lookups, vmStats.hits ); } } void getInterfaceBytes() { struct ifaddrs *ifa_list = 0, *ifa; if (getifaddrs(&ifa_list) == -1) { return; } uint32_t iBytes = 0; uint32_t oBytes = 0; for (ifa = ifa_list; ifa; ifa = ifa->ifa_next) { if (AF_LINK != ifa->ifa_addr->sa_family) continue; if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING)) continue; if (ifa->ifa_data == 0) continue; /* Not a loopback device. */ if (strncmp(ifa->ifa_name, "lo", 2)) { struct if_data *if_data = (struct if_data *)ifa->ifa_data; iBytes += if_data->ifi_ibytes; oBytes += if_data->ifi_obytes; NSLog(@"ifa->ifa_name is %s, iBytes is %d, oBytes is %d", ifa->ifa_name, iBytes, oBytes); } } freeifaddrs(ifa_list);}//caller has the duty to release returned arrayCGFloat* stringArrayTofloatArray(NSArray *stringArray){// NSMutableArray *floatArray; NSUInteger number = [stringArray count]; CGFloat *floatArray = (CGFloat*)calloc(number, sizeof(CGFloat)); for(int i = 0; i < [stringArray count]; ++i) { CGFloat value = [[stringArray objectAtIndex:i] floatValue]; floatArray[i] = value; } return floatArray;}NSDate* getBootTime(){ size_t size = sizeof(struct timeval);// sysctlbyname("boottime", NULL, &size, NULL, 0); struct timeval *time = malloc(sizeof(struct timeval)); // sysctlbyname("boottime", time, &size, NULL, 0); int mib[2] = {CTL_KERN, KERN_BOOTTIME}; sysctl(mib, 2, time, &size, NULL, 0); NSDate *boot = [NSDate dateWithTimeIntervalSince1970:time->tv_sec]; NSLog(@"boot is: %@, tv_sec is: %ld", boot, time->tv_sec); free(time); return boot;}int getWifiFlowIOBytes() { struct ifaddrs *ifa_list = 0, *ifa; if (getifaddrs(&ifa_list) == -1) { return 0; } uint32_t iBytes = 0; uint32_t oBytes = 0; for (ifa = ifa_list; ifa; ifa = ifa->ifa_next) { if (AF_LINK != ifa->ifa_addr->sa_family) continue; if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING)) continue; if (ifa->ifa_data == 0) continue; if (!strcmp(ifa->ifa_name, "en0")) { struct if_data *if_data = (struct if_data *)ifa->ifa_data; iBytes += if_data->ifi_ibytes; oBytes += if_data->ifi_obytes; NSLog(@"%s :iBytes is %d, oBytes is %d", ifa->ifa_name, iBytes, oBytes); } } freeifaddrs(ifa_list); return iBytes + oBytes;}int getGprs3GFlowIOBytes() { struct ifaddrs *ifa_list = 0, *ifa; if (getifaddrs(&ifa_list) == -1) { return; } uint32_t iBytes = 0; uint32_t oBytes = 0; for (ifa = ifa_list; ifa; ifa = ifa->ifa_next) { if (AF_LINK != ifa->ifa_addr->sa_family) continue; if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING)) continue; if (ifa->ifa_data == 0) continue; if (!strcmp(ifa->ifa_name, "pdp_ip0")) { struct if_data *if_data = (struct if_data *)ifa->ifa_data; iBytes += if_data->ifi_ibytes; oBytes += if_data->ifi_obytes; NSLog(@"%s :iBytes is %d, oBytes is %d", ifa->ifa_name, iBytes, oBytes); } } freeifaddrs(ifa_list); return iBytes + oBytes;}NSString *bytesToAvaiUnit(int bytes){ if(bytes < 1024) // B { return [NSString stringWithFormat:@"%dB", bytes]; } else if(bytes >= 1024 && bytes < 1024 * 1024) // KB { return [NSString stringWithFormat:@"%.1fKB", (double)bytes / 1024]; } else if(bytes >= 1024 * 1024 && bytes < 1024 * 1024 * 1024) // MB { return [NSString stringWithFormat:@"%.2fMB", (double)bytes / (1024 * 1024)]; } else // GB { return [NSString stringWithFormat:@"%.3fGB", (double)bytes / (1024 * 1024 * 1024)]; }}float getBatteryLevel(){ UIDevice *device = [UIDevice currentDevice]; [device setBatteryMonitoringEnabled:YES]; NSLog(@"battery state is: %d, battery level is: %f", [device batteryState], [device batteryLevel]); return [device batteryLevel];}
可能有更新:
googlecode链接地址:http://code.google.com/p/iphone-common-codes-ccteam/source/browse/trunk/CCFC/files/CCSystem.m
github地址: https://github.com/cxsjabc/iphone-common-codes-ccteam/tree/master/CCFC/files/CCSystem.m
- iphone-common-codes-ccteam源代码 CCSystem.m
- iphone-common-codes-ccteam源代码 CCSystem.h
- iphone-common-codes-ccteam源代码 CCAddressBook.m
- iphone-common-codes-ccteam源代码 CCAutoDisappearView.m
- iphone-common-codes-ccteam源代码 CCBaseTipView.m
- iphone-common-codes-ccteam源代码 CCCALayer.m
- iphone-common-codes-ccteam源代码 CCCamera.m
- iphone-common-codes-ccteam源代码 CCCommon.m
- iphone-common-codes-ccteam源代码 CCCompile.m
- iphone-common-codes-ccteam源代码 CCConfig.m
- iphone-common-codes-ccteam源代码 CCContact.m
- iphone-common-codes-ccteam源代码 CCDelete.m
- iphone-common-codes-ccteam源代码 CCDepend.m
- iphone-common-codes-ccteam源代码 CCDylib.m
- iphone-common-codes-ccteam源代码 CCEmoji.m
- iphone-common-codes-ccteam源代码 CCEncoding.m
- iphone-common-codes-ccteam源代码 CCFile.m
- iphone-common-codes-ccteam源代码 CCFileName.m
- 安装pywin32以后,使用出现错误
- iphone-common-codes-ccteam源代码 CCSystem.h
- MFC使用Skin++外观美化【转】
- 常用工具方法及类
- 能在ARC下跑的ASIHTTPRequest框架(以及升了5.0,用了ARC后N多开源框架不能用的解决方案) .
- iphone-common-codes-ccteam源代码 CCSystem.m
- Android APK反编译详解(附图)
- QS2算法求解N-皇后问题
- 高质量c++(指针参数是如何传递内存的?)
- Compile Android on Fedora 15 X86_64
- QTP通过命令行打开IE
- iphone-common-codes-ccteam源代码 CCTableTipView.h
- Windows Filtering Platform 结构和简介
- WinCE OpenGL绘制立方体和纹理贴图