iosobjective-ciphonedevice-name

How do I detect whether I have iPhone 2G,3G,3GS


How to detect my current device name through iOS?


Solution

  • Whether you are on an iPhone or a iPod Touch:

    UIDevice *device = [UIDevice currentDevice];
    NSString *systemName = [device systemName];
    

    To detect the version of the OS:

    UIDevice *device = [UIDevice currentDevice];
    NSString *systemVersion = [device systemVersion];
    

    To detect a specific model, you would need to test for some capability that only that model has, so to detect an iPhone 3GS, check for a video capability on the camera:

    #define SOURCETYPE UIImagePickerControllerSourceTypeCamera
    
    // does the device have a camera?
    if ([UIImagePickerController isSourceTypeAvailable:SOURCETYPE]) {
      // if so, does that camera support video?
      NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:SOURCETYPE];
      bool isA3GS = [mediaTypes containsObject:kUTTypeMovie];
    }