安卓手机指纹API

33

我对智能手机指纹认证很陌生。我们知道,三星S5目前支持指纹扫描仪。是否可以开发一款自定义应用程序,利用该扫描仪对用户进行身份验证?我只需要知道用户的身份以及是否已经成功验证。然后我的应用程序就可以从这里开始,与后端进行集成。


1
https://dev59.com/TGYq5IYBdhLWcg3wzDlI - duggu
1
http://www.codeproject.com/Questions/604029/Fingerprintplusscannerpluscodeplusforplusandroidpl - duggu
2
您需要查看指纹扫描是否包含在三星移动SDK中:http://developer.samsung.com/sdk-and-tools - CommonsWare
1
是的。我刚刚发现他们提供了注册、请求和验证指纹的Pass API。它在这里http://developer.samsung.com/release-note/view.do?v=R000000009。看起来他们昨天刚发布了一个示例应用程序 :) - DBS
1
Samsung Pass API的问题在于它不具备可移植性。因此,我们必须为Android 6.0 Finger API和Samsung Pass API编写代码。这样无论用户使用什么手机都不会有问题。 - neuman8
4个回答

20

Google现在宣布推出一款通用指纹API,可供任何自定义应用程序用于授权,而不仅仅是本机的Google应用程序。看起来未来变得更加光明!

以下是从下面链接的Android开发人员页面中提取的:

“要通过指纹扫描对用户进行身份验证,请获取新的FingerprintManager类的实例并调用authenticate()方法。”

但是,您还必须包括此权限:

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

如果您想了解更多信息,请访问此网址并向下滚动到身份验证

https://developer.android.com/about/versions/marshmallow/android-6.0.html#fingerprint-authentication


1
谷歌真的推出了一个很好的功能。你有找到任何开发者相关的链接吗? - Utkarsh Dixit
我刚发现了这个关于指纹的Github项目,不确定你是否还需要它:https://github.com/googlesamples/android-FingerprintDialog - Miles Peele

9
三星提供Pass API来注册、请求和验证指纹。它在这里:三星指纹API。还有一个示例程序。

6
Android M的指纹API预览版本可以在此处找到:这里,同时还有一个示例应用程序。截至目前为止,Android M的兼容性定义尚未发布。因此,如果指纹传感器作为指纹框架的关键硬件组件被留作“应该”要求(很可能是真的),那么OEM将决定是否合并该传感器。但是,由于Android Pay与指纹框架密切相关,这可能会驱使OEM包含指纹传感器。

4
我在Google示例中找到了这个,展示了如何在您的应用程序中使用注册的指纹来验证用户身份,然后执行某些操作,例如购买商品。

首先,您需要使用KeyGenerator在Android密钥库中创建一个对称密钥,该密钥只能在用户通过指纹进行身份验证并通过KeyGenParameterSpec之后才能使用。

通过将KeyGenParameterSpec.Builder.setUserAuthenticationRequired设置为true,您可以允许仅在用户进行身份验证(包括使用用户的指纹进行身份验证)后才使用密钥。

然后,通过使用初始化为创建的对称密钥的Cipher调用FingerprintManager.authenticate来开始侦听指纹传感器上的指纹。或者,您可以退回到服务器端验证的密码作为身份验证器。

一旦验证了指纹(或密码),就会调用FingerprintManager.AuthenticationCallback#onAuthenticationSucceeded()回调。

它需要SDK V23。据我所知,它对三星S5没有用处,但可能有助于其他人使用此功能。

2
假设用户删除了他的指纹并出售了手机,购买手机的其他用户将放置自己的指纹。但是当他访问应用程序时,应用程序将为新用户提供完全访问权限。那么我们如何区分用户或如何知道用户是否更改或添加或删除了指纹? - R.F
请阅读 https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder.html#setInvalidatedByBiometricEnrollment(boolean)。 - Nils Kassube

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接