如何on/off认证指纹或人脸识别时使用生物识别
How to on/off authentication fingerprint or face recognition when used Biometric
我使用生物识别来验证指纹或面部识别。它工作!但是如果我的设备设置为两者,我只想使用指纹或只使用面部识别。
我做不做?如果可以,我该怎么做?
这是我的代码
@RequiresApi(api = Build.VERSION_CODES.P)
public void authenticateUser(@NonNull Activity activity) {
BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(activity)
.setTitle("Biometric Demo")
.setSubtitle("Authentication is required to continue")
.setDescription("This app uses biometric authentication to protect your data.")
.setNegativeButton("Cancel", activity.getMainExecutor(),
(dialogInterface, i) -> {
mCallback.onCancel();
})
.build();
biometricPrompt.authenticate(mCancellationSignal, activity.getMainExecutor(),
getAuthenticationCallback());
}
@RequiresApi(api = Build.VERSION_CODES.P)
private BiometricPrompt.AuthenticationCallback getAuthenticationCallback() {
return new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode,
CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
mCallback.onError();
}
@Override
public void onAuthenticationHelp(int helpCode,
CharSequence helpString) {
super.onAuthenticationHelp(helpCode, helpString);
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
}
@Override
public void onAuthenticationSucceeded(
BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
mCallback.onAuthenticated();
}
};
}
如果我的设备设置为两者,我只想使用指纹或只使用面部识别。我做不做?
答案:根据最新 APIs,你不能这样做。
不同设备之间的生物识别功能不一致。在我的设备 repo 中,我有 Samsung S10 设备和 MI 设备,它们都有不同的行为。
在三星 S10 设备中,我只能在设备设置中设置 FACE/FINGERPRINT。当我调用 authenticate API.
时,设备设置中设置的任何一个都会生效
在 MI 设备中,除了 Face/Only 指纹,我可以选择同时设置两者。我认为这与您的情况相同。如果我在设备设置中同时设置这两个选项,在 authenticate() 之后我可以使用人脸或指纹进行身份验证。
我使用生物识别来验证指纹或面部识别。它工作!但是如果我的设备设置为两者,我只想使用指纹或只使用面部识别。 我做不做?如果可以,我该怎么做? 这是我的代码
@RequiresApi(api = Build.VERSION_CODES.P)
public void authenticateUser(@NonNull Activity activity) {
BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(activity)
.setTitle("Biometric Demo")
.setSubtitle("Authentication is required to continue")
.setDescription("This app uses biometric authentication to protect your data.")
.setNegativeButton("Cancel", activity.getMainExecutor(),
(dialogInterface, i) -> {
mCallback.onCancel();
})
.build();
biometricPrompt.authenticate(mCancellationSignal, activity.getMainExecutor(),
getAuthenticationCallback());
}
@RequiresApi(api = Build.VERSION_CODES.P)
private BiometricPrompt.AuthenticationCallback getAuthenticationCallback() {
return new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode,
CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
mCallback.onError();
}
@Override
public void onAuthenticationHelp(int helpCode,
CharSequence helpString) {
super.onAuthenticationHelp(helpCode, helpString);
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
}
@Override
public void onAuthenticationSucceeded(
BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
mCallback.onAuthenticated();
}
};
}
如果我的设备设置为两者,我只想使用指纹或只使用面部识别。我做不做?
答案:根据最新 APIs,你不能这样做。
不同设备之间的生物识别功能不一致。在我的设备 repo 中,我有 Samsung S10 设备和 MI 设备,它们都有不同的行为。 在三星 S10 设备中,我只能在设备设置中设置 FACE/FINGERPRINT。当我调用 authenticate API.
时,设备设置中设置的任何一个都会生效在 MI 设备中,除了 Face/Only 指纹,我可以选择同时设置两者。我认为这与您的情况相同。如果我在设备设置中同时设置这两个选项,在 authenticate() 之后我可以使用人脸或指纹进行身份验证。