取消指纹扫描仪

Cancel Fingerprint scanner

我正在开发一个具有安全功能(包括 PIN 和指纹)的程序,但现在我在输入密码(PIN 或指纹)时遇到问题。合并正确的指纹是可以的,但是当我输入PIN码时,退出PIN码和指纹activity后,机器继续监听指纹,我知道这一点,因为当我点击"home" button "机器还在轻微震动,听指纹没办法停止吗?

启动指纹reader时,传入一个CancellationSignal.

当你想取消时(可能在你的Activity上的OnPause),调用这个对象的cancel方法即可。

有一个完整的样本here

您可以使用 CancellationSignal 对象取消手指扫描侦听器。检查以下代码:

private CancellationSignal cancellationSignal;
...
...
public void startFingerAuth(FingerprintManager manager, FingerprintManager.CryptoObject cryptoObject) {
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.USE_FINGERPRINT)
            != PackageManager.PERMISSION_GRANTED) {
        return;
    }
    cancellationSignal = new CancellationSignal();
    manager.authenticate(cryptoObject, cancellationSignal, 0, this, null);
}


public void stopFingerAuth(){
    if(cancellationSignal != null && !cancellationSignal.isCanceled()){
        cancellationSignal.cancel();
    }
}

您必须在 activity 或片段中调用此方法 stopFingerAuth()。