2010-10-21 85 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