iPhone應(yīng)用中如何獲取硬件版本以及系統(tǒng)信息
iPhone應(yīng)用中如何獲取硬件版本以及系統(tǒng)信息是本文要介紹的內(nèi)容,主要是基于代碼來實(shí)現(xiàn)硬件版本和系統(tǒng)信息的獲取,來看詳細(xì)內(nèi)容。獲取iphone的系統(tǒng)信息使用[UIDevice currentDevice],信息如下:
- [[UIDevice currentDevice] systemName]:系統(tǒng)名稱,如iPhone OS
- [[UIDevice currentDevice] systemVersion]:系統(tǒng)版本,如4.2.1
- [[UIDevice currentDevice] model]:The model of the device,如iPhone或者iPod touch
- [[UIDevice currentDevice] uniqueIdentifier]:設(shè)備的惟一標(biāo)識(shí)號(hào),deviceID
- [[UIDevice currentDevice] name]:設(shè)備的名稱,如 張三的iPhone
- [[UIDevice currentDevice] localizedModel]:The model of the device as a localized string,類似model
- 詳見http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html
但是以上的信息貌似無法得到設(shè)備的硬件版本以及系統(tǒng)信息,例如一個(gè)iphone3GS,系統(tǒng)升級(jí)到了iphone 4。此時(shí)使用systemVersion得到的應(yīng)該是4.x.x,那我們?nèi)绾沃涝撛O(shè)備為iphone3GS呢。網(wǎng)上流傳一個(gè)方法,經(jīng)測(cè)試應(yīng)該是有用的。
自定義一個(gè)類:
- #import <Foundation/Foundation.h>
- @interface UIDeviceHardware : NSObject {
- }
- - (NSString *) platform;
- - (NSString *) platformString;
- @end
- #import "UIDeviceHardware.h"
- #include <sys/types.h>
- #include <sys/sysctl.h>
- @implementation UIDeviceHardware
- - (NSString *) platform{
- size_t size;
- sysctlbyname("hw.machine", NULL, &size, NULL, 0);
- char *machine = malloc(size);
- sysctlbyname("hw.machine", machine, &size, NULL, 0);
- NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
- free(machine);
- return platform;
- }
- - (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"] || [platform isEqualToString:@"x86_64"])
- return @"iPhone Simulator";
- return platform;
- }
- @end
使用[[[UIDeviceHardware alloc] init] platform]應(yīng)該就可以得到設(shè)備的硬件版本。源碼地址:http://download.csdn.net/source/3415689
小結(jié):iPhone應(yīng)用中如何獲取硬件版本以及系統(tǒng)信息的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)鞥讀你有所幫助!