我对智能手机指纹认证很陌生。我们知道,三星S5目前支持指纹扫描仪。是否可以开发一款自定义应用程序,利用该扫描仪对用户进行身份验证?我只需要知道用户的身份以及是否已经成功验证。然后我的应用程序就可以从这里开始,与后端进行集成。
我对智能手机指纹认证很陌生。我们知道,三星S5目前支持指纹扫描仪。是否可以开发一款自定义应用程序,利用该扫描仪对用户进行身份验证?我只需要知道用户的身份以及是否已经成功验证。然后我的应用程序就可以从这里开始,与后端进行集成。
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
它需要SDK V23。据我所知,它对三星S5没有用处,但可能有助于其他人使用此功能。首先,您需要使用KeyGenerator在Android密钥库中创建一个对称密钥,该密钥只能在用户通过指纹进行身份验证并通过KeyGenParameterSpec之后才能使用。
通过将KeyGenParameterSpec.Builder.setUserAuthenticationRequired设置为true,您可以允许仅在用户进行身份验证(包括使用用户的指纹进行身份验证)后才使用密钥。
然后,通过使用初始化为创建的对称密钥的Cipher调用FingerprintManager.authenticate来开始侦听指纹传感器上的指纹。或者,您可以退回到服务器端验证的密码作为身份验证器。
一旦验证了指纹(或密码),就会调用FingerprintManager.AuthenticationCallback#onAuthenticationSucceeded()回调。