2010-10-21 72 views
6

虽然在您的应用程序中找到并使用这些信息并不是一个好习惯,但是有没有办法找到您的iPhone/iPod/iPad型号。例如:2G/3GS/4G等查找iPhone型号信息

回答

7

尝试:

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是0-14,等

+0

我试过这个,''sysctlbyname'没有在这个范围内声明。我如何申报? – 2010-10-21 20:51:43

+1

将#include 添加到相关的.h文件中。 – hotpaw2 2010-10-21 21:00:43

+0

谢谢。你可以用同样的方法找到iPod/Pad吗? – 2010-10-21 21:03:50

1

-[UIDevice model],但我不确定它是否会返回比“iPhone”或“iPod Touch”更具体的内容。

+0

是啊试过,只给你iPhone/iPod/iPad的。 – 2010-10-21 20:50:30

1

我认为iTunes/Xcode Organizer已经出于某种原因做了这些事情(至少我似乎记得它正确地将我的旧iPod Touch识别为第一代),但我的iPhone 3GS绝对不是这种情况。 iPhone配置实用程序也不提供帮助。

因此,我启动了System Profiler,查看设备是否显示在USB列表中;它确实如此。它还显示“产品ID”(在我的情况下,0x1294)。我打的是到谷歌以及与此想出了:

http://theiphonewiki.com/wiki/index.php?title=Normal_Mode

设备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 -

6

我认为这是已经回答在这里:Determine device (iPhone, iPod Touch) with iPhone SDK,虽然我已经添加了一下它:

- (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,例如,specs for iPhone 4以获取平台字符串。

+1

嘿谢谢,已经做得非常好了! – 2010-10-22 08:48:56

+0

@westsider iPhone 4GS是否有平台字符串“iPhone3,2”? – Besi 2011-12-05 09:50:57

+0

我不能肯定地说,但上面提到的网站说iPhone 4S(不是GS)有平台字符串iPhone 4,1。请参阅:http://www.everymac.com/systems/apple/iphone/specs/apple-iphone-4s-specs.html HTH。 – westsider 2011-12-07 23:28:32