2010-10-21 10 views
6

खोजें हालांकि यह आपके आवेदन में इस जानकारी का पता लगाने और उपयोग करने का अच्छा अभ्यास नहीं है, क्या आपके पास आईफोन/आईपॉड/आईपैड का मॉडल ढूंढने का कोई तरीका है। उदाहरण के लिए: 2G/3GS/4G आदिआईफोन मॉडल जानकारी

उत्तर

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 एक 3 जी है, 2,1 एक 3GS है, 3,1 एक I4, आदि

+0

मैंने कोशिश की, "इस स्कोप में 'sysctlbyname' घोषित नहीं किया गया था। मैं इसे कैसे घोषित करूं? –

+1

जोड़ें: #include रिलीज .h फ़ाइल में। – hotpaw2

+0

धन्यवाद। क्या आप आइपॉड/पैड को वैसे ही ढूंढ सकते हैं? –

1

-[UIDevice model], लेकिन मुझे यकीन है कि अगर यह "iPhone" या "आइपॉड टच" की तुलना में अधिक विशिष्ट कुछ भी रिटर्न नहीं हूँ।

+0

हाँ ने कोशिश की, केवल आपको आईफोन/आईपॉड/आईपैड देता है। –

1

मैंने सोचा था कि आईट्यून्स/एक्सकोड ऑर्गनाइज़र ने पहले से ही किसी कारण से ऐसा किया है (कम से कम मुझे लगता है कि यह मेरे पुराने आईपॉड टच को पहली जीन के रूप में सही ढंग से पहचान रहा है), यह निश्चित रूप से मेरे आईफोन 3 जीएस के मामले में नहीं है। आईफोन कॉन्फ़िगरेशन उपयोगिता भी नहीं करता है।

इसलिए मैंने सिस्टम प्रोफाइलर को निकाल दिया ताकि यह देखने के लिए कि डिवाइस यूएसबी सूची पर दिखाया गया है या नहीं; ऐसा होता है। यह "उत्पाद आईडी" भी दिखाता है (मेरे मामले में, 0x1294)। मैं गूगल में टाइप कि और इस के साथ आया था:

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

डिवाइस आईडी

ऐसा लगता है कि यह अलग डिवाइस आईडी का उपयोग करता है:

iPhone - 0x1290

आइपॉड टच - 0x1291

आईफोन 3 जी - 0x1292

आइपॉड टच 2 जी - 0x1293

iPhone 3GS - 0x1294

आइपॉड टच 3 जी - 0x1299

आईपैड - 0x129a

iPhone 4 -

आइपॉड टच 4G - 0x129e

ऐप्पल टीवी 2 जी -

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; 

}

परिवार के हालिया जोड़ों के लिए खाते में। आप प्लेटफॉर्म स्ट्रिंग प्राप्त करने के लिए, उदाहरण के लिए, specs for iPhone 4, हरिपोड डॉट कॉम चेकआउट कर सकते हैं।

+1

हे धन्यवाद, पहले से ही यह बहुत कुछ किया है! –

+0

@westsider क्या आईफोन 4 जीएस में प्लेटफॉर्म स्ट्रिंग 'आईफोन 3,2' है? – Besi

+0

मैं निश्चित रूप से नहीं कह सकता लेकिन उपरोक्त वर्णित वेबसाइट का कहना है कि आईफोन 4 एस (जीएस नहीं) में मंच स्ट्रिंग आईफोन 4,1 है। कृपया देखें: http://www.everymac.com/systems/apple/iphone/specs/apple-iphone-4s-specs.html एचटीएच। – westsider

संबंधित मुद्दे