虽然在应用程序中查找和使用此信息不是良好的实践,但是否有办法找到您拥有的iPhone / iPod / iPad的型号。例如:2G/3GS/4G等
虽然在应用程序中查找和使用此信息不是良好的实践,但是否有办法找到您拥有的iPhone / iPod / iPad的型号。例如:2G/3GS/4G等
尝试:
char deviceString[256];
size_t size = 255;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
if (size > 255) { size = 255; }
sysctlbyname("hw.machine", deviceString, &size, NULL, 0);
if (strcmp(deviceString,"iPhone1,1") == 0) { etc... } // 2G
1,2是一款3G手机, 2,1是一款3GS手机, 3,1是一款i4手机,等等。
我认为这个问题已经在这里得到了回答:使用iPhone SDK确定设备(iPhone、iPod Touch),不过我稍微补充了一点:
- (NSString *) platformString{
NSString *platform = [self platform];
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 ([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:@"i386"]) return @"iPhone Simulator";
return platform;
为了适应家庭的最新成员,您可以查看everyipod.com,例如iPhone 4规格以获取平台字符串。
-[UIDevice model]
,但我不确定它是否返回比“iPhone”或“iPod Touch”更具体的内容。
我曾经以为iTunes/Xcode Organizer已经可以做到这一点了(至少我记得它能正确识别我的旧iPod Touch为第一代),但对于我的iPhone 3GS来说显然不是这样。iPhone配置实用程序也没有帮助。
所以我启动了系统信息查看设备是否出现在USB列表中,结果它确实出现了。它还显示了“产品ID”(在我的情况下是0x1294)。我将其输入谷歌搜索,找到了以下内容:
设备ID 看起来它使用不同的设备ID: iPhone - 0x1290 iPod touch - 0x1291 iPhone 3G - 0x1292 iPod touch 2G - 0x1293 iPhone 3GS - 0x1294 iPod touch 3G - 0x1299 iPad - 0x129a iPhone 4 - iPod touch 4G - 0x129e Apple TV 2G -
'sysctlbyname' was not declared in this scope
的错误。我该如何声明它? - ingh.am