我知道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