美文网首页
autojs指纹验证

autojs指纹验证

作者: 牙叔教程 | 来源:发表于2021-09-05 12:03 被阅读0次

    牙叔教程 简单易懂

    效果展示

    GIF.gif

    环境

    Autojs版本: 9.0.5

    Android版本: 10.0.0

    MIUI版本: 12.5.1

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

    android.permission.USE_BIOMETRIC

    你将学到以下知识点

    • 指纹验证
    • imgView更换颜色

    代码讲解

    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文档, 最后才是群里问问
    --- 牙叔教程

    声明

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

    相关文章

      网友评论

          本文标题:autojs指纹验证

          本文链接:https://www.haomeiwen.com/subject/prjjwltx.html