其他分享
首页 > 其他分享> > autojs指纹验证

autojs指纹验证

作者:互联网

牙叔教程 简单易懂

效果展示

在这里插入图片描述

环境

Autojs版本: 9.0.5

Android版本: 10.0.0

MIUI版本: 12.5.1

autojs9没有指纹验证权限, 需要用mt管理器在AndroidManifest.xml中添加权限

android.permission.USE_BIOMETRIC

你将学到以下知识点

代码讲解

1. 导入类
importClass("android.hardware.fingerprint.FingerprintManager");
importClass("android.os.CancellationSignal");
importClass("android.graphics.PorterDuff");
2. UI界面
ui.layout(
  <vertical>
    <text text="指纹验证" margin="0 0 0 10" textColor="#d9000000" textSize="35sp" w="*" gravity="center"></text>
    <text
      text="--牙叔教程 简单易懂"
      margin="0 0 0 10"
      textColor="#80000000"
      textSize="25sp"
      w="*"
      gravity="center"
    ></text>
    <frame w="*" h="*">
      <img id="img" layout_gravity="center" src="@drawable/ic_fingerprint_black_48dp" w="100dp" h="100dp"></img>
    </frame>
  </vertical>
);
3. 主逻辑
// 判断设备是否有指纹验证
let r = judgeFingerprintIsCorrect();
if (r) {
  log("开始指纹验证");
  let authenticationCallback = createAuthenticationCallback();
  mManager.authenticate(null, mCancellationSignal, 0, authenticationCallback, null);
}
4. 释放资源
ui.emitter.on("pause", function () {
  release();
});
function release() {
  if (mCancellationSignal != null) {
    mCancellationSignal.cancel();
    mCancellationSignal = null;
  }
}
5. 验证回调
function createAuthenticationCallback() {
  let mSelfCancelled = new FingerprintManager.AuthenticationCallback({
    onAuthenticationError: function (errorCode, errString) {
      //多次指纹密码验证错误后,进入此方法;并且,不可再验(短时间)
      //errorCode是失败的次数
      toastLog("尝试次数过多,请稍后重试");
    },

    onAuthenticationHelp: function (helpCode, helpString) {
      //指纹验证失败,可再验,可能手指过脏,或者移动过快等原因。
      toastLog("指纹验证失败");
      failureEffect(imgView);
    },

    onAuthenticationSucceeded: function (result) {
      toastLog("指纹验证成功");
      release();
      engines.myEngine().forceStop();
    },

    onAuthenticationFailed: function () {
      //指纹验证失败,指纹识别失败,可再验,错误原因为:该指纹不是系统录入的指纹。
      toastLog("指纹验证失败");
      failureEffect(imgView);
    },
  });
  return mSelfCancelled;
}
6. 判断是否有指纹验证
function judgeFingerprintIsCorrect() {
  if (!mFingerprintManager.isHardwareDetected()) {
    toastLog("没有指纹识别模块");
    return false;
  } else {
    log("有指纹识别模块");
  }

  if (!mKeyManager.isKeyguardSecure()) {
    toastLog("没有开启锁屏密码");
    return false;
  } else {
    log("有开启锁屏密码");
  }

  if (!mManager.hasEnrolledFingerprints()) {
    toastLog("没有指纹录入");
    return false;
  } else {
    log("有指纹录入");
  }
  return true;
}

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问
— 牙叔教程

声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

bilibili

牙叔教程

微信公众号 牙叔教程

在这里插入图片描述

QQ群

747748653
在这里插入图片描述

完整源码

标签:function,教程,return,验证,指纹,autojs,toastLog
来源: https://blog.csdn.net/snailuncle2/article/details/120112693