意图启动指纹登记屏幕

时间:2016-09-16 08:10:00

标签: fingerprint biometrics android-fingerprint-api

如何从我的应用程序启动指纹注册设置屏幕(添加指纹屏幕)?

注册指纹后,有没有办法导航回我的应用程序? (使用startActivityForResult)

4 个答案:

答案 0 :(得分:14)

阅读完文档后,我发现截至目前,没有这样的意图行动。我使用以下Intent启动了安全设置(其中指纹选项可用)。

startActivity(new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS));

答案 1 :(得分:3)

建议的答案不适用于华为P9。此型号的指纹设置可从以下位置获得: startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));

另一件事是,当您在应用任务上启动系统设置时,注册新指纹并通过反击返回,您将无法在第一次授权时加密任何消息。最好的事情是,如果用户将应用程序设置为后台并自己注册,然后恢复应用程序,加密将起作用。我不知道这种行为的原因是什么,所以我建议只告知用户注册手指的可能性。

答案 2 :(得分:3)

使用API​​ >= P时,有Settings.ACTION_FINGERPRINT_ENROLLBiometricPrompt

@RequiresApi(api = Build.VERSION_CODES.P)
private void startFingerprintEnrollment(@NonNull AppCompatActivity activity) {
    Intent intent = new Intent(Settings.ACTION_FINGERPRINT_ENROLL);
    activity.startActivityForResult(intent, REQUESTCODE_FINGERPRINT_ENROLLMENT);
}

与API >= M相比:

@SuppressWarnings("deprecation")
@RequiresApi(api = Build.VERSION_CODES.M)
private void gotoSecuritySettings(@NonNull AppCompatActivity activity) {
    Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
    activity.startActivityForResult(intent, REQUESTCODE_SECURITY_SETTINGS);
}

认为这是FingerprintEnrollIntroduction ...

  

指纹注册的入职活动。

答案 3 :(得分:2)

解决方案:如果您的目标 API 级别为 30 及以上

Settings.ACTION_FINGERPRINT_ENROLL 在 API 级别 30 see

中已弃用

使用这个:

startActivity(Intent(Settings.ACTION_BIOMETRIC_ENROLL))

但是由于自定义操作系统,这可能不会在所有 android 设备中都支持,

我建议这样使用:

try {
       startActivity(Intent(Settings.ACTION_BIOMETRIC_ENROLL))
} catch (e: Exception) {
       startActivity(Intent(Settings.ACTION_SETTINGS))
}