从视图上,Android P上的指纹生物识别量



我正在使用FingerprintManager用指纹对我的应用进行身份验证。我有指纹UI的和Android View,当称为FingerprintManager.authenticate回调时,我在视图中处理回调,例如,更改指纹图标,错误文本等。

现在在Android P中,我必须使用BiometricPrompt,这很容易使用,但是迫使我拥有Activity才能正常工作

有没有一种方法可以使BiometricPrompt在普通的Android视图中起作用?

这是我在活动中启动提示的工作代码

    Signature signature = createSignature();
    biometricPrompt = new BiometricPrompt.Builder(context)
            .setDescription("Description")
            .setTitle("Title")
            .setSubtitle("Subtitle")
            .setNegativeButton("Cancel", context.getMainExecutor(), new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Log.i(TAG, "Cancel button clicked");
                }
            })
            .build();
        biometricPrompt.authenticate(new BiometricPrompt.CryptoObject(signature), cancellationSignal, context.getMainExecutor() , new BiometricPrompt.AuthenticationCallback() {...}

上下文是一项无效的活动

浏览了我在问题线程中收到的评论后,我发现问题是在comcellationsignal中, FingerprintManager确实在Android P中工作,并且在视图中使用BiometricPrompt

实际问题是在三星设备(Note9,s10)上运行Android P,使用FingerprintManager时,将出现透明屏幕并覆盖视图我在onDetach中有cancelationSignal.cancel会破坏整个验证流程。在其他设备上,这很有意义,因为用户可以按需关闭指纹屏幕

最新更新