2015-10-14 112 views
3

我们正在Android上创建一个时间戳应用程序,理想情况下这将使用指纹识别用户。Android为多用户使用新的指纹API

在一个组织中,可以有150个不同的用户。指纹API会允许多个用户吗?或者,这是目前只为设备的所有者?如果这仅适用于当前用户,是否还有其他可用的API可用?如果不是,我认为我们需要完全放弃这条道路。

+0

您是否找到了解决方案来识别多个用户而不使用任何外部设备? @rept –

+0

@AlejandroMartínezMartínez不幸的不是。很明显,目前的API无法实现。 – rept

回答

2

Android M或三星或iPhone API只允许针对设备用户验证当前用户。

有一些与Android平台兼容的指纹扫描仪以及适用于Android的SDK。这些SDK允许获取指纹图像或模板。扫描仪已插入USB端口,因此您无法对平板电脑充电并同时使用指纹扫描仪。例如:

还有集成了指纹扫描仪,并与SDK的一些设备来获得指纹图像或模板。

+0

嗨@LaurentY,不是我希望听到的,但非常有用的感谢!我会密切关注如何找到可以实现多用户并连接到指纹设备的API。 – rept

2

可以使用android.hardware.fingerprint.Fingerprint.class

/** 
* Container for fingerprint metadata. 
* @hide 
*/ 
public final class Fingerprint implements Parcelable { 
    private CharSequence mName; 
    private int mGroupId; 
    private int mFingerId; 
    private long mDeviceId; // physical device this is associated with 
... 
} 

反对与登记一个连同FingerprintManager内部类,但API的知名度比较是隐藏的,你需要使用反射

/** 
* Container for callback data from {@link FingerprintManager#authenticate(CryptoObject, 
*  CancellationSignal, int, AuthenticationCallback, Handler)}. 
*/ 
public static class AuthenticationResult { 
    private Fingerprint mFingerprint; 
... 
} 
+0

您可以简要阐述一下吗? – Kels

+0

@Kels你知道如何使用反射?如果是这样,只需在指纹滚动时抓住mFingerprint字段,保存(其属性)文件数据库或任何(将指纹ID与用户关联),并在进行身份验证时与其进行比较。如果你不知道学习基础知识,那么你就会明白我写的东西。 – ceph3us