我知道iPhone 5S上的Touch ID无法通过SDK被任何其他应用程序使用,但我想知道是否可以让应用程序至少看到触摸ID在设备上启用。这可以作为应用程序的附加安全因素,以查看iPhone 5S上是否已启用Touch ID。我知道MDM产品可以做到这一点,应用程序需要使用特殊的API来确定这些信息吗?查看iPhone 5s上是否启用了Touch ID
4
A
回答
0
开发人员文档中没有提到任何关于检测设备上是否存在Touch ID的内容。绝对有一个私人API可以提供这些信息,但使用它会成为Apple不批准你的应用的理由。
2
由于TouchID只出现在iPhone 5S,您可以使用下面的代码来确定硬件型号:
- (NSString *) checkiPhone5s {
// Gets a string with the device model
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine);
if ([platform isEqualToString:@"iPhone6,1"]) {
// it is iPhone 5s !!!
}
}
需要注意的是iPhone 5S可能有新的模式,使平台字符串可能是“iPhone6, 2“,”iPhone6,3“。
或者,UIDeviceHardware类可以提供有用的信息,如果该类更新为iPhone 5s的。目前它显示iPhone 5的“未知iPhone”。
7
您正在查找的方法是LAContext
的canEvaluatePolicy:error:
。 在以下情况下将返回NO:
- 触控ID在设备上不可用。
- 设备上未设置密码。
- Touch ID没有注册手指。
更多的相关信息在这里:Local Authentication Framework Reference
- (BOOL) isTouchIDAvailable {
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
if (![myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
NSLog(@"%@", [authError localizedDescription]);
return NO;
}
return YES;
}
2
我通过下面的步骤检查。
的iOS < 8.0:
self.touchIdAvailable = NO;
然后检查设备是touchId可用。
- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError **)error if ("canEvaluatePolicy return YES"):{ self.touchIdAvailable = YES; self.osTouchIdStatus = TouchIdSetOK; }
检查为什么这个设备是不是touchID启用错误块
case LAErrorPasscodeNotSet: case LAErrorTouchIDNotEnrolled: self.touchIdAvailable = YES; self.osTouchIdStatus = TouchIdNotSet; break; default: self.touchIdAvailable = NO; self.osTouchIdStatus = TouchIdNotSupported; break;
相关问题
- 1. 如何检查Touch ID是否已注册但在iPhone上已禁用?
- 2. 检测设备是否为iPhone 5s
- 3. 是否可以检测iPhone上的网页上是否启用了VoiceOver?
- 4. 我在Drupal中查看是否启用了魔术引号?
- 5. 在iPhone 5s上设置UITableView
- 6. iPhone 5S上的File.Create失败
- 7. 确定iPhone上是否启用了飞行模式?
- 8. 检查是否启用了BlackBerry gps
- 9. 是否可以通过查看HTTP流量来查看是否使用了AJAX?
- 10. iPhone调整 - 如何查看用户是否在主屏幕上?
- 11. 检查Windows 7上是否启用了IPv6使用C#
- 12. 如何检查iPhone上的地理位置是否已启用?
- 13. 如何查看Drupal站点上是否使用了块?
- 14. react-native-touch-id是否支持android?
- 15. 应用程序在iPhone 5S上崩溃,但不在iPhone 4S上。
- 16. 使用64位iPhone 5S
- 17. 如何检查设备上是否启用了蓝牙
- 18. 如何检查是否启用了向上按钮?
- 19. 如何检查给定路径上是否启用了POSIX ACL
- 20. 检查设备上是否启用了facetime
- 21. 检查在rails上的ruby中是否启用了javascript和cookie?
- 22. 以编程方式检查在Windows上是否启用了IPv6
- 23. 检查是否在iOS7上启用了推送通知
- 24. 如何检查iOS上是否启用了BackgroundFetching?
- 25. 如何检查android上是否启用了背景数据?
- 26. 查看在iPhone 5s和5c(iOS 7.1)中打开,如iPhone 4s屏幕
- 27. 了解Mac是否支持Force Touch
- 28. IPHONE:测试,看是否有看法是对上海华
- 29. Sencha Touch 2上的PDF查看器
- 30. MFMessageComposeViewController和MFMailComposeViewController不在iPhone 5S上显示
这本地认证框架可为iOS的8起SDK。 – Raghav