Я использую Биометрический менеджер (представленный в API 29) в проекте с minSdkVersion 26.
К моему удивлению, проект компилируется и работает, я ожидал, что это вызовет ошибку во время сборки. Я что-то упускаю? Не вызовет ли это проблем при выпуске?
Грейдл:
defaultConfig {
minSdkVersion 26
targetSdkVersion 31
versionCode 1
versionName "1.0"
Класс:
import androidx.biometric.BiometricManager;
import androidx.biometric.BiometricPrompt;
public BiometricPromptClass(Activity activity) {
this.context = activity.getBaseContext();
this.activity = activity;
}
public int getDeviceBiometricStatus(){
return getBiometricManager().canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_WEAK);
}
public boolean CheckIfCanAuthenticate() {
if (getDeviceBiometricStatus() == BiometricManager.BIOMETRIC_SUCCESS) {
return true;
} else {
failureCode = getDeviceBiometricStatus();
return false;
}
}




I am using BiometricManager
Нет, ты не... по крайней мере, не тот, на которого ты ссылался. Вы связались с android.hardware.biometrics.BiometricsManager. В вашем коде используется androidx.biometrics.BiometricsManager. Это не тот класс. Версия Jetpack (androidx) будет иметь код, который пытается корректно поддерживать старые устройства.
Хорошее место, да, это ответ - неправильный импорт. Такую простую вещь упустить!
Работает, потому что
minSdkVersion26. Может не работать как надо, но работает.