2017-02-03 18 views
2

Я включил приложение id i touch id inmy. Но iPhone 5 и 5c недоступен датчик отпечатков пальцев. Как я могу обнаружить устройства программно, у которых нет датчика отпечатков пальцев. Мое приложение написано в объективе c.Как обнаружить датчик отпечатка пальца Недоступно устройство

Пожалуйста, помогите мне. Thanks

+0

http://stackoverflow.com/questions/11197509/ios-how-to-get -Устройство-макияж и-модель. Используйте это, чтобы найти модель устройства. –

ответ

1

Вы должны использовать структуру LAContext, которая требуется для аутентификации Touch ID.

LAErrorTouchIDNotAvailable показывает, какое устройство имеет функциональность.

Фрагмент кода:

- (IBAction)shouldAuthenticate:(id)sender { 
    LAContext *context = [[LAContext alloc] init]; 
    NSError *error = nil; 

    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { 
    // Authentication here. 
    } else { 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
                message:@"Your device cannot authenticate using TouchID." 
                delegate:nil 
              cancelButtonTitle:@"Ok" 
              otherButtonTitles:nil]; 
    [alert show]; 

    } 
}  

или попробовать это, чтобы получить BOOL возвращения:

- (BOOL)canAuthenticateByTouchId { 
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) { 
    return [[[LAContext alloc] init] canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]; 
    } 
    return NO; 
} 
+1

Большое вам спасибо. Что делать, если устройство имеет сенсорный датчик ID, и пользователь не установил идентификатор касания. im не получая сообщение об ошибке для этого. Как я могу это обнаружить? – user1960169

+1

https://the-nerd.be/2015/10/01/authentication-with-touchid/ Проверьте это, чтобы настроить Touch ID очень просто. Голосование, если вам нравится мой ответ. Спасибо –

+0

Gr8 work @AnkitKumarGupta –

0
func checkIfTouchIDEnabled() { 

var error:NSError? 

// 2. Check if the device has a fingerprint sensor 
// If not, show the user an alert view and bail out! 
guard authenticationContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else { 

    if let error = error as NSError? { 

     if error.code == LAError.Code.touchIDNotAvailable.rawValue { /* Device does not support touch id*/ 

     print("Finger print sensors are not present in this device") 

     } else if error.code == LAError.Code.touchIDNotEnrolled.rawValue { 
     print("Finger print sensors are present in this device but no TouchID has been enrolled yet") 
     } else { 
     // Add more checks ... 
     } 
    } 
    return 
} 
} 
+0

попробуйте объяснить, что делает этот код и как это решает проблему из Q в текстовом разделе. – loki

+0

Я предполагаю, что человек спрашивал, как проверить, присутствуют ли датчики печати пальца. Я думаю, он хотел различать датчики отпечатков пальцев и датчики печати пальцев, но пальцевые отпечатки не добавлены. –

+0

Пожалуйста, отредактируйте текст сообщения (https://stackoverflow.com/posts/46169804/edit). Таким образом, будущие пользователи смогут следить и понимать ваш подход. – loki