Search code examples
iphonemodelipod-touch

How to find iPhone/iPod Device model (3G,3GS,4,4S) by code?


Possible Duplicate:
Determine device (iPhone, iPod Touch) with iOS

I have tried to get the current device model name like 3G,3GS,4,4S,iPodTouch (Different Generations). But, I can't get an exact result till now. Can you please help me to find out the device model? Here I have attached my code that I used to get device model.

UIDevice *device = [UIDevice currentDevice];
NSString *deviceVersion = [device systemVersion];//Return 4.0.1 and 5.0.1
NSString *deviceName = [device systemName];//Return iPhone, iPod Touch

How can I get the device model 3G,3GS,4,4S,iPod Touch,iPad?


Solution

  • #import <sys/utsname.h>
    
    NSString*
    machineName()
    {
        struct utsname systemInfo;
        uname(&systemInfo);
    
        return [NSString stringWithCString:systemInfo.machine
                                  encoding:NSUTF8StringEncoding];
    }
    

    The result should be:

    @"i386"      on the simulator
    @"iPod1,1"   on iPod Touch
    @"iPod2,1"   on iPod Touch Second Generation
    @"iPod3,1"   on iPod Touch Third Generation
    @"iPod4,1"   on iPod Touch Fourth Generation
    @"iPhone1,1" on iPhone
    @"iPhone1,2" on iPhone 3G
    @"iPhone2,1" on iPhone 3GS
    @"iPad1,1"   on iPad
    @"iPad2,1"   on iPad 2
    @"iPhone3,1" on iPhone 4
    @"iPhone4,1" on iPhone 4S