FingerprintIdentify
这是一个可拓展的Android指纹识别API兼容库,目前集成了以下API:
安卓API:最低支持安卓6.0系统 (查看详细介绍)
三星SDK:最低支持安卓4.2系统 (查看详细介绍)
魅族SDK:最低支持安卓5.1系统 (查看详细介绍)
API调用优先级:安卓API > 三星SDK > 魅族SDK
1. Gradle 添加引用
compile 'com.wei.android.lib:fingerprintidentify:1.2.1'
2. AndroidManifest 添加权限
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
<uses-permission android:name="com.fingerprints.service.ACCESS_FINGERPRINT_MANAGER"/>
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
3. FingerprintIdentify 方法解释
mFingerprintIdentify = new FingerprintIdentify(this); // 构造对象
mFingerprintIdentify = new FingerprintIdentify(this, exceptionListener); // 构造对象,并监听错误回调(错误仅供开发使用)
mFingerprintIdentify.isFingerprintEnable(); // 指纹硬件可用并已经录入指纹
mFingerprintIdentify.isHardwareEnable(); // 指纹硬件是否可用
mFingerprintIdentify.isRegisteredFingerprint(); // 是否已经录入指纹
mFingerprintIdentify.startIdentify(maxTimes, listener); // 开始验证指纹识别
mFingerprintIdentify.cancelIdentify(); // 关闭指纹识别
mFingerprintIdentify.resumeIdentify(); // 恢复指纹识别并保证错误次数不变
4. startIdentify 方法解析
mFingerprintIdentify.startIdentify(3, new BaseFingerprint.FingerprintIdentifyListener() {
@Override
public void onSucceed() {
// 验证成功,自动结束指纹识别
}
@Override
public void onNotMatch(int availableTimes) {
// 指纹不匹配,并返回可用剩余次数并自动继续验证
}
@Override
public void onFailed(boolean isDeviceLocked) {
// 错误次数达到上限或者API报错停止了验证,自动结束指纹识别
// isDeviceLocked 表示指纹硬件是否被暂时锁定
}
@Override
public void onStartFailedByDeviceLocked() {
// 第一次调用startIdentify失败,因为设备被暂时锁定
}
});
5. 混淆设置
# MeiZuFingerprint
-keep class com.fingerprints.service.** { *; }
# SmsungFingerprint
-keep class com.samsung.android.sdk.** { *; }
6. 相关资料
1. 通常指纹硬件在连续识别错误5次后,就会暂时锁定硬件,需要等30s左右才能再次恢复使用。
这个因设备而异,比如魅族的SDK就完全没有次数限制。
2. 关于 'com.android.support:appcompat-v7:25.3.1' 版本问题
从25版本开始 FingerprintManagerCompatApi23 类需要检查 FEATURE_FINGERPRINT 特性。
具体可以参考:https://code.google.com/p/android/issues/detail?id=231939
3. 国内个别手机产商会移植安卓6.0的标准指纹API到6.0以下的系统中使用,比如OPPO。
但是移植后的API存在被修改的可能,可能会导致程序奔溃,比如VIVO。
4. 由于魅族指纹SDK可能会在某些系统上可以正常调用部分API,所以需要加个设备判断。
5. 魅族的指纹SDK在魅蓝NOTE3上也可能出现功能异常,比如调用release后也不能恢复mback模式。
7. 资源下载
Android指纹识别API,指纹识别工具,包含demo
https://download.youkuaiyun.com/download/lwhlwh2012/10402570