Холостой прогон сенсора - AzretMagometov/android-littlefinger GitHub Wiki
Запуск
Холостой прогон сенсора или Аутентификация без расшифровки может пригодиться, если приложению требуется проверить, что текущий пользователь - действительно владелец телефона (ну или по крайней мере имеет имеет отпечатки в этом устройстве).
Для этого нужно вызвать метод LittleFinger.authenticate(Callback callback)
Callback - функциональный интерфейс с методом onCompleted(AuthResult result)
State полученного таким образом AuthResult может быть в следующих состояниях:
- SUCCESS - отпечаток распознан верно
- HELP - отпечаток не считался из-за слабого/быстрого нажима
- FAIL - отпечаток считан, но не распознан
- ERROR - сенсор недоступен, работа прекращена
- EXCEPTION - произошла ошибка. Ошибки описаны в отдельном разделе Wiki.
Эти состояния коррелируют с методами FingerprintManager.AuthenticationCallback(). AuthResult в состояниях HELP и ERROR содержит errorCode - в поле и message - внутри throwable.
Так же AuthResult в состоянии ERROR хранит переменную canceledByUser, c помощью которой можно определить, почему произошла ошибка - из-за перегруза системы (несколько FAIL -> ERROR) или из-за действий пользователя (покинул экран, отменил нажатием кнопки и т.п.)
Отмена
Метод cancelAuth() служит для отмены запущенной операции сканирования. Этот метод приведет к тому, что в Callback попадет AuthResult с состоянием ERROR и canceledByUser - true.
Пример
Запуск сенсора
void onStartSensorClick() {
showMessage(R.string.fp_message_touch_sensor);
mLittleFinger.authenticate(this::handleSensorResult);
}
Обработка коллбека
private void handleSensorResult(AuthResult authResult) {
int labelRes = 0;
switch (authResult.getState()) {
case HELP:
labelRes = R.string.fp_touch_help;
break;
case FAIL:
labelRes = R.string.fp_touch_failed;
break;
case ERROR:
labelRes = authResult.isCanceledByUser()
? R.string.fp_touch_canceled_by_user
: R.string.fp_touch_error;
break;
case SUCCESS:
labelRes = R.string.fp_touch_success;
break;
}
showMessage(labelRes);
}
Отмена сканирования
void dispatchOnPause() {
mLittleFinger.cancelAuth();
}