+
(NSString
*)getCurrentDeviceModel:(UIViewController
*)controller{ int
mib[2]; size_t
len; char
*machine; mib[0]
= CTL_HW; mib[1]
= HW_MACHINE; sysctl(mib,
2, NULL,
&len, NULL,
0); machine
= malloc(len); sysctl(mib,
2, machine, &len, NULL,
0); NSString
*platform = [NSString
stringWithCString:machine encoding:NSASCIIStringEncoding]; free(machine); if
([platform isEqualToString:@"iPhone1,1"])
return
@"iPhone
2G (A1203)"; if
([platform isEqualToString:@"iPhone1,2"])
return
@"iPhone
3G (A1241/A1324)"; if
([platform isEqualToString:@"iPhone2,1"])
return
@"iPhone
3GS (A1303/A1325)"; if
([platform isEqualToString:@"iPhone3,1"])
return
@"iPhone
4 (A1332)"; if
([platform isEqualToString:@"iPhone3,2"])
return
@"iPhone
4 (A1332)"; if
([platform isEqualToString:@"iPhone3,3"])
return
@"iPhone
4 (A1349)"; if
([platform isEqualToString:@"iPhone4,1"])
return
@"iPhone
4S (A1387/A1431)"; if
([platform isEqualToString:@"iPhone5,1"])
return
@"iPhone
5 (A1428)"; if
([platform isEqualToString:@"iPhone5,2"])
return
@"iPhone
5 (A1429/A1442)"; if
([platform isEqualToString:@"iPhone5,3"])
return
@"iPhone
5c (A1456/A1532)"; if
([platform isEqualToString:@"iPhone5,4"])
return
@"iPhone
5c (A1507/A1516/A1526/A1529)"; if
([platform isEqualToString:@"iPhone6,1"])
return
@"iPhone
5s (A1453/A1533)"; if
([platform isEqualToString:@"iPhone6,2"])
return
@"iPhone
5s (A1457/A1518/A1528/A1530)"; if
([platform isEqualToString:@"iPhone7,1"])
return
@"iPhone
6 Plus (A1522/A1524)"; if
([platform isEqualToString:@"iPhone7,2"])
return
@"iPhone
6 (A1549/A1586)"; if
([platform isEqualToString:@"iPod1,1"])
return
@"iPod
Touch 1G (A1213)"; if
([platform isEqualToString:@"iPod2,1"])
return
@"iPod
Touch 2G (A1288)"; if
([platform isEqualToString:@"iPod3,1"])
return
@"iPod
Touch 3G (A1318)"; if
([platform isEqualToString:@"iPod4,1"])
return
@"iPod
Touch 4G (A1367)"; if
([platform isEqualToString:@"iPod5,1"])
return
@"iPod
Touch 5G (A1421/A1509)"; if
([platform isEqualToString:@"iPad1,1"])
return
@"iPad
1G (A1219/A1337)"; if
([platform isEqualToString:@"iPad2,1"])
return
@"iPad
2 (A1395)"; if
([platform isEqualToString:@"iPad2,2"])
return
@"iPad
2 (A1396)"; if
([platform isEqualToString:@"iPad2,3"])
return
@"iPad
2 (A1397)"; if
([platform isEqualToString:@"iPad2,4"])
return
@"iPad
2 (A1395+New Chip)"; if
([platform isEqualToString:@"iPad2,5"])
return
@"iPad
Mini 1G (A1432)"; if
([platform isEqualToString:@"iPad2,6"])
return
@"iPad
Mini 1G (A1454)"; if
([platform isEqualToString:@"iPad2,7"])
return
@"iPad
Mini 1G (A1455)"; if
([platform isEqualToString:@"iPad3,1"])
return
@"iPad
3 (A1416)"; if
([platform isEqualToString:@"iPad3,2"])
return
@"iPad
3 (A1403)"; if
([platform isEqualToString:@"iPad3,3"])
return
@"iPad
3 (A1430)"; if
([platform isEqualToString:@"iPad3,4"])
return
@"iPad
4 (A1458)"; if
([platform isEqualToString:@"iPad3,5"])
return
@"iPad
4 (A1459)"; if
([platform isEqualToString:@"iPad3,6"])
return
@"iPad
4 (A1460)"; if
([platform isEqualToString:@"iPad4,1"])
return
@"iPad
Air (A1474)"; if
([platform isEqualToString:@"iPad4,2"])
return
@"iPad
Air (A1475)"; if
([platform isEqualToString:@"iPad4,3"])
return
@"iPad
Air (A1476)"; if
([platform isEqualToString:@"iPad4,4"])
return
@"iPad
Mini 2G (A1489)"; if
([platform isEqualToString:@"iPad4,5"])
return
@"iPad
Mini 2G (A1490)"; if
([platform isEqualToString:@"iPad4,6"])
return
@"iPad
Mini 2G (A1491)"; if
([platform isEqualToString:@"i386"])
return
@"iPhone
Simulator"; if
([platform isEqualToString:@"x86_64"])
return
@"iPhone
Simulator"; return
platform;}
#include <sys/types.h>
#include <sys/sysctl.h>
//可通过苹果review- (NSString*)getDeviceVersion{ size_t size; sysctlbyname("hw.machine", NULL,
&size, NULL, 0); char *machine
= (char*)malloc(size); sysctlbyname("hw.machine",
machine, &size, NULL, 0); NSString *platform
= [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
//NSString *platform = [NSStringstringWithUTF8String:machine];二者等效
free(machine); return platform;}- (NSString *) platformString{
NSString *platform = [selfgetDeviceVersion];
if ([platform isEqualToString:@"iPhone1,1"]) return@"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"]) return@"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"]) return@"iPhone 3GS";
if ([platform isEqualToString:@"iPhone3,1"]) return@"iPhone 4";
if ([platformisEqualToString:@"iPhone3,2"]) return @"Verizon iPhone 4";
if ([platform isEqualToString:@"iPod1,1"]) return@"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return@"iPod Touch 2G";
if ([platform isEqualToString:@"iPod3,1"]) return@"iPod Touch 3G";
if ([platform isEqualToString:@"iPod4,1"]) return@"iPod Touch 4G";
if ([platform isEqualToString:@"iPad1,1"]) return@"iPad";
if ([platform isEqualToString:@"iPad2,1"]) return@"iPad 2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"]) return@"iPad 2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"]) return@"iPad 2 (CDMA)";
if ([platform isEqualToString:@"i386"]) return@"Simulator";
return platform;
}
本文介绍如何通过Objective-C代码获取iOS设备的型号和版本信息,包括从系统调用中解析硬件信息,并针对不同型号返回相应的设备名称。
779

被折叠的 条评论
为什么被折叠?



