实施Android指纹技术

时间:2019-03-21 07:06:57

标签: android authentication fingerprint

我不确定这是否是提出与流量有关的问题的合适地点。如果您知道一个更好的部分,请引导我。

我目前正在为多个组织使用基于Web的系统,因此在我的登录表单上,有3个简单字段:

  1. 公司代码,例如CNN(因此我们可以使用相同的用户名,只要它们在不同的公司工作)
  2. 用户名,例如james
  3. 密码

现在,我们实际上正在研究指纹认证技术,以及如何在上面提供帮助。

我们的假设如下:

  1. 在我们的应用程序上,我们向用户提供注册屏幕,而不是用户名/密码,他们在表单上轻按了拇指,这样我们可以获得一些东西,也许是一个很长的随机字符串,它代表了指纹,然后我们传递了此代码服务器,以及他的个人资料,并完成注册。
  2. 以上对数千名其他用户重复。
  3. 一个用户来到我们的应用程序登录屏幕,我们向他们展示一个扫描仪,他们将拇指放在上面,我们发送检索到的指纹代码,然后发送到服务器进行匹配比较,然后我们对该用户进行身份验证。

但是从我们的研究来看,指纹SDK似乎无法通过这种方式运行,它只是简单地验证用户是否是手机的所有者,并且它不提供给我们任何代码或代表指纹的内容。

任何有开发可部署/部署指纹应用程序经验的人都可以与我分享指纹如何帮助验证用户身份吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您应该将这一行添加到manifest.xml-<uses-feature android:name="android.hardware.fingerprint" android:required="false" />

以下是显示指纹对话框并从用户交互中获取结果的代码示例:

    private void showFingerPrintDialog() {
    final FingerprintDialogBuilder dialogBuilder = new FingerprintDialogBuilder(ContextInstance)
            .setTitle(R.string.fingerprint_dialog_title)
            .setSubtitle(R.string.fingerprint_dialog_subtitle)
            .setDescription(R.string.fingerprint_dialog_description)
            .setNegativeButton(R.string.cancel);
    dialogBuilder.show(getSupportFragmentManager(), new AuthenticationCallback() {
        @Override
        public void fingerprintAuthenticationNotSupported() {
            Log.d(TAG, "fingerprintAuthenticationNotSupported: ");
        }

        @Override
        public void hasNoFingerprintEnrolled() {
            Log.d(TAG, "hasNoFingerprintEnrolled: ");
        }

        @Override
        public void onAuthenticationError(int errorCode, @Nullable CharSequence errString) {
            Log.d(TAG, "onAuthenticationError: ");
        }

        @Override
        public void onAuthenticationHelp(int helpCode, @Nullable CharSequence helpString) {
            Log.d(TAG, "onAuthenticationHelp: ");
        }

        @Override
        public void authenticationCanceledByUser() {
            Log.d(TAG, "authenticationCanceledByUser: ");
        }

        @Override
        public void onAuthenticationSucceeded() {
            Log.d(TAG, "onAuthenticationSucceeded: ");
            /*SaveResult in db or preference*/
        }

        @Override
        public void onAuthenticationFailed() {
            Log.d(TAG, "onAuthenticationFailed: ");
        }
    });
}