您的位置:首页 > 其它

检测iPhone/iPod Touch/iPad设备类型

2012-09-19 09:03 633 查看

检测iPhone/iPod Touch/iPad设备类型  

#import <Foundation/Foundation.h>

#import <sys/utsname.h>

enum {

    MODEL_IPHONE_SIMULATOR,

    MODEL_IPOD_TOUCH,

    MODEL_IPHONE,

    MODEL_IPHONE_3G,

    MODEL_IPAD

};

@interface DeviceDetection : NSObject

+ (uint) detectDevice;

+ (NSString *) returnDeviceName:(BOOL)ignoreSimulator;

+ (BOOL) isIPodTouch;

@end

#import "DeviceDetection.h"

@implementation DeviceDetection

+ (BOOL) isIPodTouch

{

    int model = [DeviceDetection detectDevice];

    if (model == MODEL_IPOD_TOUCH || model == MODEL_IPAD){

        //|| model == MODEL_IPHONE_SIMULATOR){

        return YES;

    }    

    else {

        return NO;

    }

}

+ (uint) detectDevice {

    NSString *model= [[UIDevice currentDevice] model];

    

    // Some iPod Touch return "iPod Touch", others just "iPod"

    

    NSString *iPodTouch = @"iPod Touch";

    NSString *iPodTouchLowerCase = @"iPod touch";

    NSString *iPodTouchShort = @"iPod";

    NSString *iPad = @"iPad";

    

    NSString *iPhoneSimulator = @"iPhone Simulator";

    

    uint detected;

    

    if ([model compare:iPhoneSimulator] == NSOrderedSame) {

        // iPhone simulator

        detected = MODEL_IPHONE_SIMULATOR;

    }

    else if ([model compare:iPad] == NSOrderedSame) {

        // iPad

        detected = MODEL_IPAD;

    } else if ([model compare:iPodTouch] == NSOrderedSame) {

        // iPod Touch

        detected = MODEL_IPOD_TOUCH;

    } else if ([model compare:iPodTouchLowerCase] == NSOrderedSame) {

        // iPod Touch

        detected = MODEL_IPOD_TOUCH;

    } else if ([model compare:iPodTouchShort] == NSOrderedSame) {

        // iPod Touch

        detected = MODEL_IPOD_TOUCH;

    } else {

        // Could be an iPhone V1 or iPhone 3G (model should be "iPhone")

        struct utsname u;

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iphone ipad interface struct