【问题标题】:How can I get the fingerprint byte data by using Nougat's API?如何使用 Nougat 的 API 获取指纹字节数据?
【发布时间】:2018-04-11 22:21:55
【问题描述】:

我想使用 android 7 api 获取指纹字节数据。为此,我正在关注本教程:Fingerprint API Tutorial

在本教程中,我有使用指纹 api 使用指纹对用户进行身份验证的指导。

public void startListening(FingerprintManager.CryptoObject cryptoObject) {
        if (!isFingerprintAuthAvailable()) {
            return;
        }
        mCancellationSignal = new CancellationSignal();
        mSelfCancelled = false;
        mFingerprintManager
                .authenticate(cryptoObject, mCancellationSignal, 0 /* flags */, this, null);
        mIcon.setImageResource(R.drawable.ic_fp_40px);
    }


    public void stopListening() {
        if (mCancellationSignal != null) {
            mSelfCancelled = true;
            mCancellationSignal.cancel();
            mCancellationSignal = null;
        }
    }

但我不需要使用 android api 验证用户的指纹数据。我只需要从 android api 捕获的指纹字节数据。我怎么能得到那个?

【问题讨论】:

    标签: android fingerprint android-fingerprint-api


    【解决方案1】:

    当前(以及未来可能)的 Android API 将只允许对指纹进行身份验证,而不能访问原始指纹数据本身。这是因为 Android 处理指纹数据的方式;它仅在可信执行环境 (TEE) 中进行分析。 TEE 拥有指纹数据的唯一加密密钥,它永远不会离开 TEE,因此即使您可以拿到指纹数据,它也会被加密。

    还需要注意的是,TEE 是由硬件支持的,无论是使用专用硬件还是通过主 CPU 上的虚拟化,因此即使对手机进行 Root 操作也无法获取数据。

    您可以阅读有关 TEE 的更多信息here

    如果您确实需要访问原始指纹数据,我建议您使用带有随附 SDK 的外部扫描仪,例如 this one。我以前在项目中使用过这个,SDK 非常好并且有据可查。

    【讨论】:

    • 我已经集成了 secugen sdk 。但是为什么我不能使用android api获取fingerdata?
    • 由于我的回答第一段和链接文章中的所有原因,您无法使用Android API
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多