Android 指纹笔记 已经躺在 草稿快一年了,还是整理一下,把坑填上。
FingerprintManagerCompat 是V4 包提供支持 API >=23
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;

指纹的使用都是在验证,大部分是支付,也有些是在登录,或者私密的二次验证。

以自己写的 私密记事本 锁屏之后再亮屏需要指纹验证的思路:

首先是大于23,使用官方支持的,否则可能会出现异常,使用反射也能达到要求但是,不合乎规范:

    private FingerprintManagerCompat manager; oncreatif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {            // 获取一个FingerPrintManagerCompat的实例            manager = FingerprintManagerCompat.from(this);        }

callback

  public class MyCallBack extends FingerprintManagerCompat.AuthenticationCallback {    private static final String TAG = "MyCallBack";    // 当出现错误的时候回调此函数,比如多次尝试都失败了的时候,errString是错误信息    @Override    public void onAuthenticationError(int errMsgId, CharSequence errString) {        Log.d(TAG, "onAuthenticationError: " + errString);        if (errString != null)            loadingDialog.showError(errString.toString(),1);    }    // 当指纹验证失败的时候会回调此函数,失败之后允许多次尝试,失败次数过多会停止响应一段时间然后再停止sensor的工作    @Override    public void onAuthenticationFailed() {        Log.d(TAG, "onAuthenticationFailed: " + "验证失败");//            handler.sendMessageDelayed(new Message(), 1000 * 30);        handler.postDelayed(new Runnable() {            @Override            public void run() {                if (mycall != null)                    manager.authenticate(null, 0, null, mycall, null);            }        }, 1000 * 30);        loadingDialog.showError("验证失败",1);    }    @Override    public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {        Log.d(TAG, "onAuthenticationHelp: " + helpString);        if (helpString != null)            loadingDialog.showError("验证失败",1);    }    // 当验证的指纹成功时会回调此函数,然后不再监听指纹sensor    @Override    public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult                                                  result) {        Log.d(TAG, "onAuthenticationSucceeded: " + "验证成功");        loadingDialog.show("验证成功", 1);        if (AppContext.getContext().isLocked) {            AppContext.getContext().isLocked = false;            AppContext.getContext().removeActivity(VolidateActivity.this);            VolidateActivity.this.finish();        } else DeviceUtil.startActivity(context, MainActivity.class);    }}

更多相关文章

  1. Android(安卓)AppWidget实例验证
  2. eclipse虚拟机adb启动失败
  3. Android如何通过手机自动获取短信验证码
  4. Android(安卓)Studio Emulator 提示 “/dev/kvm is not found”
  5. (Android、Java) MD5加密方法
  6. 一行代码玩转android数据库之增删改查,超级简单 第三方框架xUtils
  7. 解决OPPO手机在Android(安卓)studio 环境下安装错误运行失败的问
  8. SystemUI密码解锁后指纹识别清除次数
  9. Android网络应用(图片查看器)

随机推荐

  1. android中checkbox文字和复选框的间距设
  2. Android 4.0中按键的处理流程
  3. Android获取外网和内网的IP
  4. 24. android dialog ——ProgressDialog
  5. Android进阶知识:Handler相关
  6. Android 开机底层优化
  7. Android中用Spannable在TextView中给文字
  8. 在Ubuntu上下载、编译、运行Android系统
  9. FastBoot 刷机方法
  10. andr