我正在尝试通过指纹以及面部解锁来验证我的应用程序,具体取决于用户已为其设备设置了身份验证。现在在我的应用程序中,我希望不显示面部解锁,为此我删除了指纹,但是我的设备支持Android 10.我知道可以选择显示什么内容,例如指纹或面部提示。如何检查我的应用是否支持面部解锁。 以下是我的实现
Gradle :
implementation "androidx.biometric:biometric:1.0.1"
Code Implementation:
public class MainActivity extends AppCompatActivity {
Button btnHello;
Executor executor;
BiometricPrompt.PromptInfo promptInfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
executor = ContextCompat.getMainExecutor(this);
final BiometricPrompt biometricPrompt = new BiometricPrompt(MainActivity.this,
executor, new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode,
@NonNull CharSequence errString) {
super.onAuthenticationError(errorCode, errString);
Toast.makeText(getApplicationContext(),
"Authentication error: " + errString, Toast.LENGTH_SHORT)
.show();
}
@Override
public void onAuthenticationSucceeded(
@NonNull BiometricPrompt.AuthenticationResult result) {
super.onAuthenticationSucceeded(result);
Toast.makeText(getApplicationContext(),
"Authentication succeeded!", Toast.LENGTH_SHORT).show();
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
Toast.makeText(getApplicationContext(), "Authentication failed",
Toast.LENGTH_SHORT)
.show();
}
});
promptInfo = new BiometricPrompt.PromptInfo.Builder()
.setTitle("Biometric login for my app")
.setSubtitle("Log in using your biometric credential")
.setNegativeButtonText("Use account password")
.build();
// Prompt appears when user clicks "Log in".
// Consider integrating with the keystore to unlock cryptographic operations,
// if needed by your app.
Button biometricLoginButton = findViewById(R.id.btnHello);
biometricLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
biometricPrompt.authenticate(promptInfo);
}
});
}
}
答案 0 :(得分:0)
n
答案 1 :(得分:0)
你真的不能(我认为)。您只能确定它是否支持生物识别实现,而不能确定它是哪一种(即您可以说它支持生物识别,但不能说它支持指纹或面部识别)。您可能看不到面部识别选项,因为您的设备无法通过面部 ID 进行 STRONG(相对于 WEAK)生物识别(例如,在三星上,指纹较强,但面部 ID 较弱)。