java - 如何在 onCreate() 中重复验证指纹

标签 java android android-fingerprint-api

这个basic Android 教程应用程序将打印一条 Toast 消息来验证指纹身份验证。但它只能验证一次。我希望它能够在应用程序仍在运行时重新验证指纹。我尝试在 helper.startAuth() 周围添加一个 while 循环,但它不起作用。我引用了几个问题( 123 ),但这些问题都没有帮助我。这是我尝试过的方法,但不起作用。

if (cipherInit()) {
    cryptoObject = new FingerprintManager.CryptoObject(cipher);
    FingerprintHandler helper = new FingerprintHandler(this);
    while(true){
        helper.startAuth(fingerprintManager, cryptoObject);
    }
}

这是我的onCreate()。感谢您的帮助和指导

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
    keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);

    if (!keyguardManager.isKeyguardSecure()){
        Toast.makeText(this,
                "Lock screen security is not enable in Settings", Toast.LENGTH_LONG).show();
        return;
    }

    if (ActivityCompat.checkSelfPermission(this,
            Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED){
        Toast.makeText(this,
                "Fingerprint authentication permission is not enabled", Toast.LENGTH_LONG).show();
        return;
    }

    if (!fingerprintManager.hasEnrolledFingerprints()){
        Toast.makeText(this, "Register at least one fingerprint in Settings", Toast.LENGTH_LONG).show();
        return;
    }

    generateKey();
    if (cipherInit()) {
        cryptoObject = new FingerprintManager.CryptoObject(cipher);
        FingerprintHandler helper = new FingerprintHandler(this);
        helper.startAuth(fingerprintManager, cryptoObject);

    }

}

最佳答案

你不能在onCreate中重复执行任何操作。 OnCreate 需要完成并继续,否则应用程序将被看门狗杀死。事实上,您永远不应该在 UI 线程上重复执行任何操作。您需要在另一个线程(或 AsyncTask)或某种计时器上执行此操作。

关于java - 如何在 onCreate() 中重复验证指纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38596226/

相关文章:

android - 哪些三星设备不支持 android 的原生指纹 API?

java - 如何导入com.mysql.jdbc.Driver

java - JFrame.setAlwaysOnTop 不起作用

java - 如何使用 Android 共享 Intent 选择器 (ACTION_SEND) 监听/捕获社交媒体共享的成功事件?

Java缩放像素?

android - 如何使用 Parcelable 和 onClickListeners?

java - 为什么测试中的某些硬编码值会影响其他值?

android - 生物识别提示和辅助服务

android - 我可以维护一个 apk 来处理 Android 上的指纹扫描吗?

java - 具有浮点和字节的交错 VBO