Я включил проверку подлинности пользователя для моего приложения, которое запрашивает проверку подлинности пользователя так же, как пользователь разблокирует свое устройство.
В некоторых устройствах Android метод createConfirmDeviceCredentialIntent () не позволяет отпечатку пальца разблокировать приложение и являетсявсегда запрашивать пин / шаблон для разблокировки.
void checkCredentials(){
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
Intent credentialsIntent = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
credentialsIntent = keyguardManager.createConfirmDeviceCredentialIntent("Confirm your screen lock", "Authentication is required to keep your XXXXX account safe.");
if (PreferenceHelper.isUserLogin()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && credentialsIntent != null && keyguardManager.isDeviceSecure()) {
startActivityForResult(credentialsIntent, CREDENTIALS_RESULT);
}
}
}
}
In onActivityResult (int requestCode, int resultCode, Intent data) Я не получаю никаких параметров, когда пользователь пытается с отпечатком пальца.
Проблема в том, что пользователь не может разблокировать приложение с помощью отпечатка пальца (если он включен на устройстве). Пользователь должен ввести свой PIN / Pattern (запасной / основной разблокировки, установленный пользователем).
Я сталкивался с этой проблемой в Huawei (INE-LX2), а MI POCO (F1) и ОС Android 9, тогда какнет проблем с другими устройствами.
Кто-нибудь сталкивался с похожими проблемами с этими двумя конкретными моделями устройств или схожими проблемами на любом устройстве? И в чем может быть проблема в моем способе реализации?