В android createConfirmDeviceCredentialIntent () не позволяет отпечатку пальца разблокировать приложение и всегда запрашивает пин-код / ​​шаблон для разблокировки - PullRequest
0 голосов
/ 04 ноября 2019

Я включил проверку подлинности пользователя для моего приложения, которое запрашивает проверку подлинности пользователя так же, как пользователь разблокирует свое устройство.

В некоторых устройствах 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, тогда какнет проблем с другими устройствами.

Кто-нибудь сталкивался с похожими проблемами с этими двумя конкретными моделями устройств или схожими проблемами на любом устройстве? И в чем может быть проблема в моем способе реализации?

...