123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- //
- // BDFaceDevice.m
- // FaceSDKSample_IOS
- //
- // Created by Zhang,Jian(MBD) on 2020/12/9.
- // Copyright © 2020 Baidu. All rights reserved.
- //
- #import "BDFaceDevice.h"
- #import <sys/utsname.h>
- @implementation BDFaceDevice
- + (NSString*)deviceName
- {
- struct utsname systemInfo;
- uname(&systemInfo);
- NSString* code = [NSString stringWithCString:systemInfo.machine
- encoding:NSUTF8StringEncoding];
- static NSDictionary* deviceNamesByCode = nil;
- if (!deviceNamesByCode) {
- deviceNamesByCode = @{@"i386" : @"Simulator",
- @"x86_64" : @"Simulator",
- @"iPod1,1" : @"iPod Touch", // (Original)
- @"iPod2,1" : @"iPod Touch", // (Second Generation)
- @"iPod3,1" : @"iPod Touch", // (Third Generation)
- @"iPod4,1" : @"iPod Touch", // (Fourth Generation)
- @"iPod7,1" : @"iPod Touch", // (6th Generation)
- @"iPhone1,1" : @"iPhone", // (Original)
- @"iPhone1,2" : @"iPhone", // (3G)
- @"iPhone2,1" : @"iPhone", // (3GS)
- @"iPad1,1" : @"iPad", // (Original)
- @"iPad2,1" : @"iPad 2", //
- @"iPad3,1" : @"iPad", // (3rd Generation)
- @"iPhone3,1" : @"iPhone 4", // (GSM)
- @"iPhone3,3" : @"iPhone 4", // (CDMA/Verizon/Sprint)
- @"iPhone4,1" : @"iPhone 4S", //
- @"iPhone5,1" : @"iPhone 5", // (model A1428, AT&T/Canada)
- @"iPhone5,2" : @"iPhone 5", // (model A1429, everything else)
- @"iPad3,4" : @"iPad", // (4th Generation)
- @"iPad2,5" : @"iPad Mini", // (Original)
- @"iPhone5,3" : @"iPhone 5c", // (model A1456, A1532 | GSM)
- @"iPhone5,4" : @"iPhone 5c", // (model A1507, A1516, A1526 (China), A1529 | Global)
- @"iPhone6,1" : @"iPhone 5s", // (model A1433, A1533 | GSM)
- @"iPhone6,2" : @"iPhone 5s", // (model A1457, A1518, A1528 (China), A1530 | Global)
- @"iPhone7,1" : @"iPhone 6 Plus", //
- @"iPhone7,2" : @"iPhone 6", //
- @"iPhone8,1" : @"iPhone 6S", //
- @"iPhone8,2" : @"iPhone 6S Plus", //
- @"iPhone8,4" : @"iPhone SE", //
- @"iPhone9,1" : @"iPhone 7", //
- @"iPhone9,3" : @"iPhone 7", //
- @"iPhone9,2" : @"iPhone 7 Plus", //
- @"iPhone9,4" : @"iPhone 7 Plus", //
- @"iPhone10,1": @"iPhone 8", // CDMA
- @"iPhone10,4": @"iPhone 8", // GSM
- @"iPhone10,2": @"iPhone 8 Plus", // CDMA
- @"iPhone10,5": @"iPhone 8 Plus", // GSM
- @"iPhone10,3": @"iPhone X", // CDMA
- @"iPhone10,6": @"iPhone X", // GSM
- @"iPhone11,2": @"iPhone XS", //
- @"iPhone11,4": @"iPhone XS Max", //
- @"iPhone11,6": @"iPhone XS Max", // China
- @"iPhone11,8": @"iPhone XR", //
- @"iPhone12,1": @"iPhone 11", //
- @"iPhone12,3": @"iPhone 11 Pro", //
- @"iPhone12,5": @"iPhone 11 Pro Max", //
- @"iPad4,1" : @"iPad Air", // 5th Generation iPad (iPad Air) - Wifi
- @"iPad4,2" : @"iPad Air", // 5th Generation iPad (iPad Air) - Cellular
- @"iPad4,4" : @"iPad Mini", // (2nd Generation iPad Mini - Wifi)
- @"iPad4,5" : @"iPad Mini", // (2nd Generation iPad Mini - Cellular)
- @"iPad4,7" : @"iPad Mini", // (3rd Generation iPad Mini - Wifi (model A1599))
- @"iPad6,7" : @"iPad Pro (12.9\")", // iPad Pro 12.9 inches - (model A1584)
- @"iPad6,8" : @"iPad Pro (12.9\")", // iPad Pro 12.9 inches - (model A1652)
- @"iPad6,3" : @"iPad Pro (9.7\")", // iPad Pro 9.7 inches - (model A1673)
- @"iPad6,4" : @"iPad Pro (9.7\")" // iPad Pro 9.7 inches - (models A1674 and A1675)
- };
- }
- NSString* deviceName = [deviceNamesByCode objectForKey:code];
- if (!deviceName) {
- // Not found on database. At least guess main device type from string contents:
- if ([code rangeOfString:@"iPod"].location != NSNotFound) {
- deviceName = @"iPod Touch";
- }
- else if([code rangeOfString:@"iPad"].location != NSNotFound) {
- deviceName = @"iPad";
- }
- else if([code rangeOfString:@"iPhone"].location != NSNotFound){
- deviceName = @"iPhone";
- }
- else {
- deviceName = @"Unknown";
- }
- }
- return deviceName;
- }
- @end
|