2017-02-03 3 views
2

Ich habe Touch ID in meiner iOS App aktiviert. Aber für iPhone 5 und 5c ist der Fingerabdrucksensor nicht verfügbar. Wie kann ich Geräte programmgesteuert erkennen, die keinen Fingerabdrucksensor haben? Meine App ist in Ziel-c geschrieben.So erkennen Sie Fingerabdrucksensor nicht verfügbar Gerät

Bitte helfen Sie mir. Danke

+0

http://stackoverflow.com/questions/11197509/ios-how-to-get -Gerät-machen-und-Modell. Verwenden Sie dies, um das Modell des Geräts zu finden. –

Antwort

1

Sie sollten das LAContext-Framework verwenden, das für die Touch ID-Authentifizierung erforderlich ist.

LAErrorTouchIDNotAvailable zeigt an, welches Gerät über die Funktionalität verfügt.

Code-Snippet:

- (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]; 

    } 
}  

oder versuchen, diese BOOL Rückkehr zu bekommen:

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

Vielen Dank. Was ist, wenn das Gerät über einen Touch-ID-Sensor verfügt und der Benutzer die Touch-ID nicht eingerichtet hat? Ich bekomme keine Fehlermeldung dafür. Wie kann ich das erkennen? – user1960169

+1

https://the-nerd.be/2015/10/01/authentication-with-touchid/ Überprüfen Sie dies für die Einrichtung Touch ID wirklich sehr einfach. Up abstimmen, wenn Sie meine Antwort mögen. Danke –

+0

Gr8 Arbeit @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

Bitte versuchen Sie zu erklären, was dieser Code tut und wie dies das Problem von der Q in einem Textabschnitt löst. – loki

+0

Ich vermute, die Person fragte, wie man überprüft, ob Fingerabdrucksensoren vorhanden sind. Ich denke, er wollte zwischen vorhandenen Fingerabdrucksensoren und vorhandenen Fingerabdrucksensoren unterscheiden, aber keine Fingerabdrücke hinzufügen. –

+0

Bitte [bearbeiten] (https://stackoverflow.com/posts/46169804/edit) einen erläuternden Text zu Ihrer Antwort. So können zukünftige Benutzer Ihren Ansatz verfolgen und verstehen. – loki

Verwandte Themen