【问题标题】:Implementing Fingerprint authentication for Android [closed]为 Android 实施指纹认证 [关闭]
【发布时间】:2016-01-15 09:06:19
【问题描述】:

我对学习如何开发使用指纹验证的android应用程序非常感兴趣。

如何实现指纹认证?

【问题讨论】:

标签: android authentication android-6.0-marshmallow fingerprint


【解决方案1】:

Fingerprint Authentication 是你想要的:

此版本提供了新的 API,让您可以通过使用 他们在支持的设备上进行指纹扫描,在 与 Android Keystore 系统结合使用。

要通过指纹扫描对用户进行身份验证,请获取新的实例 FingerprintManager 类并调用 authenticate() 方法。你的应用 必须在带有指纹传感器的兼容设备上运行。你 必须实现指纹认证的用户界面 在您的应用程序上流动,并使用标准的 Android 指纹图标 你的用户界面。 Android 指纹图标 (c_fp_40px.png) 包含在 指纹对话框示例。如果您正在开发多个应用程序 使用指纹认证的,请注意每个应用程序必须 独立验证用户的指纹。

要在您的应用中使用此功能,请先添加 USE_FINGERPRINT 清单中的权限。

<uses-permission
        android:name="android.permission.USE_FINGERPRINT" />

要查看指纹认证的应用实现,请参阅Fingerprint Dialog sample。有关如何将这些身份验证 API 与其他 Android API 结合使用的演示,请参阅视频Fingerprint and Payment APIs

【讨论】:

  • "您必须在您的应用上实现指纹认证流程的用户界面,并在您的 UI 中使用标准的 Android 指纹图标。"这对我来说似乎有点奇怪。我们真的需要使用安卓的标准指纹图标吗?他们是如何控制的?
【解决方案2】:

Xamarin 文档Says

FingerprintManager(及其支持库对应的FingerprintManagerCompat)是使用指纹扫描硬件的主要类。此类是围绕系统级服务的 Android SDK 包装器,用于管理与硬件本身的交互。它负责启动指纹扫描仪并响应扫描仪的反馈。这个类有一个相当简单的接口,只有三个成员:

Authenticate - 此方法将初始化硬件扫描仪并在后台启动服务,等待用户扫描指纹。

EnrolledFingerprints – 如果用户在设备上注册了一个或多个指纹,则此属性将返回 true。

HardwareDetected – 此属性用于确定设备是否支持指纹扫描。 FingerprintManager.Authenticate 方法被 Android 应用程序用来启动指纹扫描仪。以下 sn-p 是如何使用支持库兼容性 API 调用它的示例:

//context is any Android.Content.Context instance, typically the Activity 
FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);
fingerprintManager.Authenticate(FingerprintManager.CryptoObject crypto,
                                int flags,
                                CancellationSignal cancel,
                                FingerprintManagerCompat.AuthenticationCallback callback,
                                Handler handler
                               );

请查看这些开发者资源:
https://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html

【讨论】:

  • 请保持原创。分享您从中获取文档的来源。
  • 永远尊重原作者。
【解决方案3】:

如果您想看一下,我为此制作了一个简短的库。以下是如何使用它:

<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
...

FingerprintDialog dialog = new FingerprintDialog(Context);
dialog.show(R.string.title, R.string.message, new FingerprintCallback() {
    @Override
    public void onFingerprintSuccess() {}

    @Override
    public void onFingerprintCancel() {}
});

结果出来了:

Github 链接:https://github.com/omaflak/FingerprintDialog

【讨论】:

  • 什么不起作用?能具体点吗?
  • 对我来说看起来不错,这会很酷,至少可以让开发人员确定api是否为Marshmallow,该库的minSDK为API23,项目可以低至API16。我希望可以调查一下?
猜你喜欢
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-03-11
相关资源
最近更新 更多