Testy biometryczne na Pixel 4XL (Android Q) nie zwracają BIOMETRIC_ERROR_HW_UNAVAILABLE.

Mam skonfigurowane rozpoznawanie twarzy

Plik manifestu Androida

<uses-permission android:name="android.permission.USE_BIOMETRIC" />

Zależności gradle

dependencies {
    implementation "androidx.biometric:biometric:1.0.1"
}

kod testowy

private boolean setBIOSetup() {
    BiometricManager biometricManager = BiometricManager.from(getActivity());
    switch (biometricManager.canAuthenticate()) {
        case BiometricManager.BIOMETRIC_SUCCESS:
            return true; 
        case BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE:
            Toast.makeText(getActivity(), "No biometric hardware installed", 
                           Toast.LENGTH_LONG).show(); 
         case BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE: 
             Toast.makeText(getActivity(), "Biometric hardware unavailable.", 
                            Toast.LENGTH_LONG).show();
              break; 
         case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED: 
             Toast.makeText(getActivity(), "No biometrics enrolled", Toast.LENGTH_LONG).show(); 
             break;
    } 
    return false; 
}

Na Pixelu 2XL zwraca BIOMETRIC_SUCCESS dla biometrii odcisków palców ale dla Pixela 4XL zwraca BIOMETRIC_ERROR_HW_UNAVAILABLE.

0
glen 20 grudzień 2019, 04:32

1 odpowiedź

Pixel 4 i 4 XL nie mają czujnika odcisków palców, a jedynie odblokowanie twarzą.

Zgłosiłeś już błąd dotyczący biblioteki, zobacz problem #146978096
i powinieneś postępować zgodnie z ich sugestią, aby uruchomić adb bugreport foo.zip.

BiometricManager .canAuthenticate() przynajmniej określa trzy warunki wstępne :

Określa, czy można użyć danych biometrycznych lub równoważnie, czy można wyświetlić monit BiometricPrompt.

  • dostępny sprzęt
  • zarejestrowane szablony
  • włączone przez użytkownika

Jeśli rzeczywiście jest to błąd, będziesz musiał poczekać, aż androidx.biometric:biometric:1.0.2 zostanie wydany.

1
Community 20 czerwiec 2020, 12:12