废话不多,直接上代码
+ (BOOL)theiPadHasFaceID{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = (char *)malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine);
NSString *iPad = [self getFaceIDIPadDeviceNameByPlatForm:platform];
if (iPad.length) {
return YES;
}
return NO;
}
+ (NSString *)getFaceIDIPadDeviceNameByPlatForm:(NSString *)platform{
//TODO:iPad Pro
// 11英寸的iPadPro全系刘海屏 缺第4代的型号
// 12英寸的iPadPro从第3代都是刘海屏 缺第6代的型号
if ([platform isEqualToString:@"iPad8,1"]
|| [platform isEqualToString:@"iPad8,2"]
|| [platform isEqualToString:@"iPad8,3"]
|| [platform isEqualToString:@"iPad8,4"]) return @"iPad Pro (11-inch)";
if ([platform isEqualToString:@"iPad8,5"]
|| [platform isEqualToString:@"iPad8,6"]
|| [platform isEqualToString:@"iPad8,7"]
|| [platform isEqualToString:@"iPad8,8"]) return @"iPad Pro (12.9-inch) (3rd generation)";
if ([platform isEqualToString:@"iPad8,9"]
|| [platform isEqualToString:@"iPad8,10"]) return @"iPad Pro (11-inch) (2nd generation)";
if ([platform isEqualToString:@"iPad8,11"]
|| [platform isEqualToString:@"iPad8,12"]) return @"iPad Pro (12.9-inch) (4th generation)";
if ([platform isEqualToString:@"iPad13,4"]
|| [platform isEqualToString:@"iPad13,5"]
|| [platform isEqualToString:@"iPad13,6"]
|| [platform isEqualToString:@"iPad13,7"]) return @"iPad Pro (11-inch) (3rd generation)";
if ([platform isEqualToString:@"iPad13,8"]
|| [platform isEqualToString:@"iPad13,9"]
|| [platform isEqualToString:@"iPad13,10"]
|| [platform isEqualToString:@"iPad13,11"]) return @"iPad Pro (12.9-inch) (5th generation)";
return nil;
}