来自视图的 android P 上的指纹生物识别提示
Fingerprint BiometricPrompt on android P from a View
我正在使用 FingerprintManager
通过指纹验证我的应用程序。
我有 android View
和指纹 ui,当 FingerprintManager.authenticate
回调被调用时,我处理视图中的回调,例如更改指纹图标、错误文本等。
现在在 Android P 中,我必须使用 BiometricPrompt
,这很容易使用,但迫使我必须有一个 Activity
才能正常工作
有没有办法让 BiometricPrompt
在普通 android 视图中工作?
这是我在 activity
中启动提示的工作代码
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() {...}
其中上下文是一个 activity,没有它就无法工作
查看我在问题线程中收到的评论后,我发现问题出在 cancellationSignal 中,FingerprintManager
在 Android P 和 BiometricPrompt
中确实有效观看次数,
实际问题出在三星设备(Note9、S10)运行 android P,
使用 FingerprintManager
时会出现透明屏幕并覆盖视图
我在 onDetach
中有 cancelationSignal.cancel
,这会破坏整个身份验证流程。在其他设备上这是有道理的,因为用户可以按需关闭指纹屏幕
我正在使用 FingerprintManager
通过指纹验证我的应用程序。
我有 android View
和指纹 ui,当 FingerprintManager.authenticate
回调被调用时,我处理视图中的回调,例如更改指纹图标、错误文本等。
现在在 Android P 中,我必须使用 BiometricPrompt
,这很容易使用,但迫使我必须有一个 Activity
才能正常工作
有没有办法让 BiometricPrompt
在普通 android 视图中工作?
这是我在 activity
中启动提示的工作代码 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() {...}
其中上下文是一个 activity,没有它就无法工作
查看我在问题线程中收到的评论后,我发现问题出在 cancellationSignal 中,FingerprintManager
在 Android P 和 BiometricPrompt
中确实有效观看次数,
实际问题出在三星设备(Note9、S10)运行 android P,
使用 FingerprintManager
时会出现透明屏幕并覆盖视图
我在 onDetach
中有 cancelationSignal.cancel
,这会破坏整个身份验证流程。在其他设备上这是有道理的,因为用户可以按需关闭指纹屏幕