【问题标题】:Use new fingerprint API from Android for multiple users为多个用户使用来自 Android 的新指纹 API
【发布时间】:2021-07-17 14:11:39
【问题描述】:

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

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

【问题讨论】:

  • 您是否找到了无需使用任何外部设备即可识别多个用户的解决方案? @rept
  • @AlejandroMartínezMartínez 不幸的是没有。可以肯定的是,当前的 API 是不可能的。
  • 您可以使用 Samsung Pass SDK。

标签: fingerprint android-6.0-marshmallow


【解决方案1】:

Android M 或三星或 iPhone API 仅允许根据设备用户验证当前用户。

有些指纹扫描仪与 Android 平台和 Android SDK 兼容。这些 SDK 允许获取指纹图像或模板。扫描仪插入 USB 端口,因此您不能同时为平板电脑充电和使用指纹扫描仪。例如:

还有一些设备集成了指纹扫描仪和 SDK 来获取指纹图像或模板。

【讨论】:

  • 嗨@LaurentY,不是我希望听到的,但非常有用,谢谢!我会密切注意寻找可以执行多用户操作并连接到指纹设备的 API。
  • 三分之二的链接目前无法使用,请您分享一些相关数据。
  • 我修复了死链接:)
【解决方案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
 ...
}

与已注册的指纹管理器内部类进行比较,但 api 的可见性是隐藏的,您需要使用反射

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

【讨论】:

  • 能否请您简要说明一下。
  • @Kels 你知道如何使用反射吗?如果是这样,只需在滚动指纹时抓取 mFingerprint 字段,保存(其属性)文件 db 或任何文件(将指纹 ID 与您的用户相关联)并在经过身份验证时与一个进行比较。如果您不了解基础知识,那么您将理解我写的内容。
猜你喜欢
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多