Как удалить аутентификацию по отпечатку пальца из менеджера Android KeyGaurd?

Я использовал диспетчер клавиатуры внутри своего приложения для выполнения некоторых действий тогда и только тогда, когда пользователь аутентифицируется, используя свои учетные данные блокировки устройства по умолчанию, теперь происходит то, что на моем устройстве включена блокировка отпечатков пальцев и шаблона / пин-кода, и когда диспетчер защиты клавиш проверяет аутентификация с использованием метода isKeyguardSecure, он запускает действие для получения результата и открывает намерение, используя .createConfirmDeviceCredentialIntent... Теперь в этом намерении он по умолчанию запрашивает отпечаток пальца и дает возможность для булавки/шаблона... Я хочу отключить отпечаток пальца в моем приложении и не хотите удалять защиту отпечатков пальцев с самого устройства, просто отключите ее для этого конкретного приложения или намерения. Это мой код:

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
Intent screenLockIntent = keyguardManager.createConfirmDeviceCredentialIntent(title, description);
startActivityForResult(screenLockIntent, LOCK_REQUEST_CODE);

Получение результата этим методом

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
    if(LOCK_REQUEST_CODE == requestCode){
        if (resultCode == RESULT_OK) {
            //Authentication is successful
              My App works now
        } else {
            //Authentication failed
        }
    }
}

Снимок экрана, показывающий аутентификацию по отпечатку пальца, которую я хочу удалить

Все это работает нормально, я просто хочу удалить аутентификацию по отпечатку пальца для этого конкретного приложения и просто использовать опцию PIN-кода/пароля... Заранее спасибо ;-)


person Harshdeep Singh Walia    schedule 04.04.2020    source источник


Ответы (1)


Вы не можете сделать это, если используете createConfirmDeviceCredentialIntent(), так как это системное намерение, и вы не можете его изменить. Как правило, блокировка экрана управляется операционной системой и поддерживает любые настройки (лицо, отпечаток пальца, радужную оболочку, PIN-код и т. д.).

Вы можете реализовать собственный экран только с PIN-кодом в своем приложении, но это сложно сделать и, как правило, менее безопасно, чем тот, который предоставляется операционной системой.

person Nikolay Elenkov    schedule 31.05.2020