// // Copyright © 2015年 dahua. All rights reserved. // #import #import #import #import NSString *const Device_Type_Simulator = @"iPhone Simulator"; NSString *const Device_Type_iPod1 = @"iPod1"; NSString *const Device_Type_iPod2 = @"iPod2"; NSString *const Device_Type_iPod3 = @"iPod3"; NSString *const Device_Type_iPod4 = @"iPod4"; NSString *const Device_Type_iPod5 = @"iPod5"; NSString *const Device_Type_iPad2 = @"iPad2"; NSString *const Device_Type_iPad3 = @"iPad3"; NSString *const Device_Type_iPad4 = @"iPad4"; NSString *const Device_Type_iPhone4 = @"iPhone 4"; NSString *const Device_Type_iPhone4S = @"iPhone 4S"; NSString *const Device_Type_iPhone5 = @"iPhone 5"; NSString *const Device_Type_iPhone5S = @"iPhone 5S"; NSString *const Device_Type_iPhone5C = @"iPhone 5C"; NSString *const Device_Type_iPadMini1 = @"iPad Mini 1"; NSString *const Device_Type_iPadMini2 = @"iPad Mini 2"; NSString *const Device_Type_iPadMini3 = @"iPad Mini 3"; NSString *const Device_Type_iPadMini4 = @"iPad Mini 4"; NSString *const Device_Type_iPadAir1 = @"iPad Air 1"; NSString *const Device_Type_iPadAir2 = @"iPad Air 2"; NSString *const Device_Type_iPadPro = @"iPad Pro"; NSString *const Device_Type_iPhone6 = @"iPhone 6"; NSString *const Device_Type_iPhone6plus = @"iPhone 6 Plus"; NSString *const Device_Type_iPhone6S = @"iPhone 6S"; NSString *const Device_Type_iPhone6Splus = @"iPhone 6S Plus"; NSString *const Device_Type_iPhoneSE = @"iPhone SE"; NSString *const Device_Type_iPhone7 = @"iPhone 7"; NSString *const Device_Type_iPhone8 = @"iPhone 8"; NSString *const Device_Type_iPhone8Plus = @"iPhone 8 Plus"; NSString *const Device_Type_iPhoneX = @"iPhone X"; NSString *const Device_Type_iPhoneXS = @"iPhone XS"; NSString *const Device_Type_iPhoneXR = @"iPhone XR"; NSString *const Device_Type_iPhoneXSMAX = @"iPhone XS MAX"; NSString *const Device_Type_iPhone11 = @"iPhone 11"; NSString *const Device_Type_iPhone11Pro = @"iPhone 11 Pro"; NSString *const Device_Type_iPhone11ProMax = @"iPhone 11 Pro Max"; NSString *const Device_Type_Unrecognized = @"?unrecognized?"; @implementation UIDevice (IPhoneModel) + (iPhoneModel)lc_iPhonesModel { //bounds method gets the points not the pixels!!! CGRect rect = [[UIScreen mainScreen] bounds]; CGFloat width = rect.size.width; CGFloat height = rect.size.height; //get current interface Orientation UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; if (UIInterfaceOrientationUnknown == orientation) { return UnKnown; } if (UIInterfaceOrientationPortrait == orientation) { if (width == 320.0f) { if (height == 480.0f) { return iPhone4; } return iPhone5; } else if (width == 375.0f) { return iPhone6; } else if (width == 414.0f) { return iPhone6Plus; } } else if (UIInterfaceOrientationLandscapeLeft == orientation || UIInterfaceOrientationLandscapeRight == orientation) {//landscape if (height == 320.0) { if (width == 480.0f) { return iPhone4; } return iPhone5; } else if (height == 375.0f) { return iPhone6; } else if (height == 414.0f) { return iPhone6Plus; } } return UnKnown; } + (NSString *)lc_iPhoneType { struct utsname systemInfo; uname(&systemInfo); NSString* code = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; static NSDictionary* deviceNamesByCode = nil; if (!deviceNamesByCode) { deviceNamesByCode = @{ @"i386" : Device_Type_Simulator, @"x86_64" : Device_Type_Simulator, @"iPod1,1" : Device_Type_iPod1, @"iPod2,1" : Device_Type_iPod2, @"iPod3,1" : Device_Type_iPod3, @"iPod4,1" : Device_Type_iPod4, @"iPod5,1" : Device_Type_iPod5, @"iPad2,1" : Device_Type_iPad2, @"iPad2,2" : Device_Type_iPad2, @"iPad2,3" : Device_Type_iPad2, @"iPad2,4" : Device_Type_iPad2, @"iPad2,5" : Device_Type_iPadMini1, @"iPad2,6" : Device_Type_iPadMini1, @"iPad2,7" : Device_Type_iPadMini1, @"iPhone3,1" : Device_Type_iPhone4, @"iPhone3,2" : Device_Type_iPhone4, @"iPhone3,3" : Device_Type_iPhone4, @"iPhone4,1" : Device_Type_iPhone4S, @"iPhone5,1" : Device_Type_iPhone5, @"iPhone5,2" : Device_Type_iPhone5, @"iPhone5,3" : Device_Type_iPhone5C, @"iPhone5,4" : Device_Type_iPhone5C, @"iPad3,1" : Device_Type_iPad3, @"iPad3,2" : Device_Type_iPad3, @"iPad3,3" : Device_Type_iPad3, @"iPad3,4" : Device_Type_iPad4, @"iPad3,5" : Device_Type_iPad4, @"iPad3,6" : Device_Type_iPad4, @"iPhone6,1" : Device_Type_iPhone5S, @"iPhone6,2" : Device_Type_iPhone5S, @"iPad4,1" : Device_Type_iPadAir1, @"iPad4,2" : Device_Type_iPadAir1, @"iPad4,4" : Device_Type_iPadMini2, @"iPad4,5" : Device_Type_iPadMini2, @"iPad4,6" : Device_Type_iPadMini2, @"iPad4,7" : Device_Type_iPadMini3, @"iPad4,8" : Device_Type_iPadMini3, @"iPad4,9" : Device_Type_iPadMini3, @"iPad5,1" : Device_Type_iPadMini4, @"iPad5,2" : Device_Type_iPadMini4, @"iPad5,3" : Device_Type_iPadAir2, @"iPad5,4" : Device_Type_iPadAir2, @"iPad6,3" : Device_Type_iPadPro, @"iPad6,4" : Device_Type_iPadPro, @"iPad6,7" : Device_Type_iPadPro, @"iPad6,8" : Device_Type_iPadPro, @"iPhone7,1" : Device_Type_iPhone6plus, @"iPhone7,2" : Device_Type_iPhone6, @"iPhone8,1" : Device_Type_iPhone6S, @"iPhone8,2" : Device_Type_iPhone6Splus, @"iPhone8,4" : Device_Type_iPhoneSE, @"iPhone9,1" : Device_Type_iPhone7, @"iPhone9,2" : Device_Type_iPhone7, @"iPhone9,3" : Device_Type_iPhone7, @"iPhone9,4" : Device_Type_iPhone7, @"iPhone10,1" : Device_Type_iPhone8, @"iPhone10,2" : Device_Type_iPhone8Plus, @"iPhone10,3" : Device_Type_iPhoneX, @"iPhone10,4" : Device_Type_iPhone8, @"iPhone10,5" : Device_Type_iPhone8Plus, @"iPhone10,6" : Device_Type_iPhoneX, @"iPhone11,2" : Device_Type_iPhoneXS, @"iPhone11,4" : Device_Type_iPhoneXSMAX, @"iPhone11,6" : Device_Type_iPhoneXSMAX, @"iPhone11,8" : Device_Type_iPhoneXR, @"iPhone12,1" : Device_Type_iPhone11, @"iPhone12,3" : Device_Type_iPhone11Pro, @"iPhone12,5" : Device_Type_iPhone11ProMax, @"x86_64" : Device_Type_Simulator, @"i386" : Device_Type_Simulator }; } NSString* deviceName = [deviceNamesByCode objectForKey:code]; if(deviceName){ return deviceName; } if(code) { return code; } return Device_Type_Unrecognized; } + (BOOL)lc_isIphoneX { BOOL iPhoneXSeries = NO; if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) { return iPhoneXSeries; } if (@available(iOS 11.0, *)) { UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window]; if (mainWindow.safeAreaInsets.bottom > 0.0) { iPhoneXSeries = YES; } } return iPhoneXSeries; } + (NSString *)dh_getMacAddress { NSArray *array = CFBridgingRelease(CNCopySupportedInterfaces()); NSDictionary *info = nil; for (NSString *interface in array) { info = CFBridgingRelease(CNCopyCurrentNetworkInfo((CFStringRef)interface)); if (info &&[info count]) { break; } } return info[@"BSSID"]; } @end