【发布时间】:2016-01-15 09:06:19
【问题描述】:
我对学习如何开发使用指纹验证的android应用程序非常感兴趣。
如何实现指纹认证?
【问题讨论】:
标签: android authentication android-6.0-marshmallow fingerprint
我对学习如何开发使用指纹验证的android应用程序非常感兴趣。
如何实现指纹认证?
【问题讨论】:
标签: android authentication android-6.0-marshmallow fingerprint
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。
【讨论】:
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
【讨论】:
如果您想看一下,我为此制作了一个简短的库。以下是如何使用它:
<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() {}
});
结果出来了:
【讨论】: