检查Android是否支持指纹识别以及是否已经录入指纹
16lz
2021-01-24
Android M 开始,系统中加入了指纹相关功能.
主要用到的类为:FingerprintManager
只提供三个方法:
返回值 | 方法签名 | 说明 |
---|---|---|
void | authenticate(FingerprintManager.CryptoObject crypto, CancellationSignal cancel, int flags, FingerprintManager.AuthenticationCallback callback, Handler handler) | 用于指纹验证 |
boolean | hasEnrolledFingerprints() | 确定是否至少有一个指纹登记。 |
boolean | isHardwareDetected() | 确定指纹硬件是否存在并且功能正常。 |
那么有了以上方法,就可以很简单的判断手机是否支持指纹,以及是否有指纹录入.以下为代码实现:
/** * 检查指纹 * * @param context * @return */ public static rx.Observable checkFingerprint(final Context context) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { return //请求指纹权限 new RxPermissions(context) .request(Manifest.permission.USE_FINGERPRINT) .map(new Func1() { @TargetApi(Build.VERSION_CODES.M) @Override public Boolean call(Boolean aBoolean) { if (aBoolean) { FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE); //确定是否指纹硬件存在和功能 return fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints(); } return false; } }); } else { return rx.Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber<? super Boolean> subscriber) { subscriber.onNext(false); } }); } }
更多相关文章
- Android控件拖拽功能的实现
- Android(安卓)中 handle Message 的简单使用笔记
- android 动态改变控件位置和大小
- eclipse中build没有apk输出
- android 连接 wsdl webservice 解析
- RecyclerView多功能分割线,横竖分割线,带padding,允许取消指定分割
- android intent 传递list或者对象
- Android(安卓)FFmpeg开发(三)JNI访问Java变量和方法
- android 动态改变控件的位置的方法