天天看點

iOS 擷取最新裝置型号方法

1.IOS 擷取最新裝置型号方法

清單最新對照表:http://theiphonewiki.com/wiki/Models

方法:

#import "sys/utsname.h"
struct utsname systemInfo;  
  uname(&systemInfo);  
  NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];  
           

這樣得到的 deviceString 是iPhone5,2 的裝置号,根據對照表可以擷取到目前手機型号。

完整函數:

struct utsname systemInfo;  
    uname(&systemInfo);  
    NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];  

    NSArray *modelArray = @[  

                            @"i386", @"x86_64",  

                            @"iPhone1,1",  
                            @"iPhone1,2",  
                            @"iPhone2,1",  
                            @"iPhone3,1",  
                            @"iPhone3,2",  
                            @"iPhone3,3",  
                            @"iPhone4,1",  
                            @"iPhone5,1",  
                            @"iPhone5,2",  
                            @"iPhone5,3",  
                            @"iPhone5,4",  
                            @"iPhone6,1",  
                            @"iPhone6,2",  

                            @"iPod1,1",  
                            @"iPod2,1",  
                            @"iPod3,1",  
                            @"iPod4,1",  
                            @"iPod5,1",  

                            @"iPad1,1",  
                            @"iPad2,1",  
                            @"iPad2,2",  
                            @"iPad2,3",  
                            @"iPad2,4",  
                            @"iPad3,1",  
                            @"iPad3,2",  
                            @"iPad3,3",  
                            @"iPad3,4",  
                            @"iPad3,5",  
                            @"iPad3,6",  

                            @"iPad2,5",  
                            @"iPad2,6",  
                            @"iPad2,7",  
                            ];  
    NSArray *modelNameArray = @[  

                                @"iPhone Simulator", @"iPhone Simulator",  

                                @"iPhone 2G",  
                                @"iPhone 3G",  
                                @"iPhone 3GS",  
                                @"iPhone 4(GSM)",  
                                @"iPhone 4(GSM Rev A)",  
                                @"iPhone 4(CDMA)",  
                                @"iPhone 4S",  
                                @"iPhone 5(GSM)",  
                                @"iPhone 5(GSM+CDMA)",  
                                @"iPhone 5c(GSM)",  
                                @"iPhone 5c(Global)",  
                                @"iphone 5s(GSM)",  
                                @"iphone 5s(Global)",  

                                @"iPod Touch 1G",  
                                @"iPod Touch 2G",  
                                @"iPod Touch 3G",  
                                @"iPod Touch 4G",  
                                @"iPod Touch 5G",  

                                @"iPad",  
                                @"iPad 2(WiFi)",  
                                @"iPad 2(GSM)",  
                                @"iPad 2(CDMA)",  
                                @"iPad 2(WiFi + New Chip)",  
                                @"iPad 3(WiFi)",  
                                @"iPad 3(GSM+CDMA)",  
                                @"iPad 3(GSM)",  
                                @"iPad 4(WiFi)",  
                                @"iPad 4(GSM)",  
                                @"iPad 4(GSM+CDMA)",  

                                @"iPad mini (WiFi)",  
                                @"iPad mini (GSM)",  
                                @"ipad mini (GSM+CDMA)"  
                                ];  
    NSInteger modelIndex = - ;  
    NSString *modelNameString = nil;  
    modelIndex = [modelArray indexOfObject:deviceString];  
    if (modelIndex >=  && modelIndex < [modelNameArray count]) {  
        modelNameString = [modelNameArray objectAtIndex:modelIndex];  
    }  


    NSLog(@"----裝置類型---%@",modelNameString); 
           

注:struct utsname systemInfo; 這是LINUX系統放硬體版本的資訊的地方

附錄:

//    IOS-擷取Model(裝置型号)、Version(裝置版本号)、app(程式版本号)等  
    NSLog(@"name: %@", [[UIDevice currentDevice] name]);  
    NSLog(@"systemName: %@", [[UIDevice currentDevice] systemName]);  
    NSLog(@"systemVersion: %@", [[UIDevice currentDevice] systemVersion]);  
    NSLog(@"model: %@", [[UIDevice currentDevice] model]);  
    NSLog(@"localizedModel: %@", [[UIDevice currentDevice] localizedModel]);  



    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];  

    CFShow((__bridge CFTypeRef)(infoDictionary));  

    // app名稱  
    NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];  
    // app版本  
    NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];  
    // app build版本  
    NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion”];