有什么方法可以检测手指在手机指纹上的触摸?

时间:2019-10-18 07:14:33

标签: java android

     `// Check whether at least one fingerprint is registered
                       if (!fingerprintManager.hasEnrolledFingerprints()) {
                           textView.setText("Register at least one fingerprint in Settings");
                       }else{
                           // Checks whether lock screen security is enabled or not
                           if (!keyguardManager.isKeyguardSecure()) {
                               textView.setText("Lock screen security not enabled in Settings");
                           }else{
                               generateKey();
          initCipher();
         }
    protected void generateKey() {
           try {
               keyStore = KeyStore.getInstance("AndroidKeyStore");
           } catch (Exception e) {
               e.printStackTrace();
           }


           KeyGenerator keyGenerator;
           try {
               keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
           } catch (NoSuchAlgorithmException | NoSuchProviderException e) {
               throw new RuntimeException("Failed to get KeyGenerator instance", e);
           }


           try {
               keyStore.load(null);
               keyGenerator.init(new
                       KeyGenParameterSpec.Builder(KEY_NAME,
                       KeyProperties.PURPOSE_ENCRYPT |
                               KeyProperties.PURPOSE_DECRYPT)
                       .setBlockModes(KeyProperties.BLOCK_MODE_CBC)
                       .setUserAuthenticationRequired(true)
                       .setEncryptionPaddings(
                               KeyProperties.ENCRYPTION_PADDING_PKCS7)
                       .build());
               keyGenerator.generateKey();
           } catch (NoSuchAlgorithmException |
                   InvalidAlgorithmParameterException
                   | CertificateException | IOException e) {
               throw new RuntimeException(e);
           }
       }

public boolean cipherInit() {
       try {
           cipher = Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + "/" + KeyProperties.BLOCK_MODE_CBC + "/" + KeyProperties.ENCRYPTION_PADDING_PKCS7);
       } catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
           throw new RuntimeException("Failed to get Cipher", e);
       }


       try {
           keyStore.load(null);
           SecretKey key = (SecretKey) keyStore.getKey(KEY_NAME,
                   null);
           cipher.init(Cipher.ENCRYPT_MODE, key);
           return true;
       } catch (KeyPermanentlyInvalidatedException e) {
           return false;
       } catch (KeyStoreException | CertificateException | UnrecoverableKeyException | IOException | NoSuchAlgorithmException | InvalidKeyException e) {
           throw new RuntimeException("Failed to init Cipher", e);
       }
   }
`

我获得身份验证码,在此方法中,使用FingerprintManager.hasEnrolledFingerprints()检查先前的指纹密钥是否可用。但是我只需要检测指纹上的触摸即可。当任何用户触摸时,请转到下一个活动。我实际上想检查指纹传感器是否正常工作。 (不进行身份验证检查)有什么解决方案吗?

我已经尝试过了。但这不是我的解决方案。

0 个答案:

没有答案