检查Android是否支持指纹识别以及是否已经录入指纹

简介: 原文:检查Android是否支持指纹识别以及是否已经录入指纹 Android M 开始,系统中加入了指纹相关功能. 主要用到的类为:FingerprintManager 只提供三个方法: 返回值 ...
原文: 检查Android是否支持指纹识别以及是否已经录入指纹

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<java.lang.Boolean> 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<Boolean, Boolean>() {
                                @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<Boolean>() {
                @Override
                public void call(Subscriber<? super Boolean> subscriber) {
                    subscriber.onNext(false);
                }
            });
        }
    }
目录
相关文章
|
3月前
|
Android开发
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
|
3月前
|
Android开发
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
|
5月前
|
IDE 开发工具 Android开发
Android c++ core guideline checker 应用问题之clang-tidy 检查后发现的问题如何解决
Android c++ core guideline checker 应用问题之clang-tidy 检查后发现的问题如何解决
|
8月前
|
Android开发
Android Mediatek USB 核心驱动中增加设备 PID/VID 检查
Android Mediatek USB 核心驱动中增加设备 PID/VID 检查
190 0
|
XML 存储 JavaScript
Android打造专有Hook第三篇,实战全量代码规范检查
目前的规范检查,我分为了全量文件检查和增量文件检查,基本上和Git提交保持一致,在实际的业务中,开发者可以动态修改配置文件参数gitIncrement,来切换是增量还是全量,增量和全量有一些是共通的地方,接下来的代码中会陈述。
|
8月前
|
Android开发 网络架构
【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)
【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)
1005 1
|
Java Android开发
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
1417 0
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
|
Android开发
Android 网络地址之实现检查主机名的功能
Android 网络地址之实现检查主机名的功能
104 0
|
数据可视化 Java Android开发
一个便捷操作的Android可视化规范检查
目前工具有九个功能,包含了,注释,类,方法,变量等基本的规范验证,如下图所示,当然也都是一些常见的规范功能检查,后续的话也会进行拓展,虽然此规范是按照我公司的标准去执行的,其实,Android嘛,大差不差,就那些规范,基本百变不离其宗,如果有不是很符合的,大家也可以在源码中进行更正为自己需要的就可以了。
116 0
|
Java 开发工具 Android开发
Android打造专有Hook第四篇,实战增量代码规范检查
在全量文件检查中,我们只需要得到Git提交的文件,然后逐一针对文件内容,获取,做相关的逻辑检查即可,但是增量就不能这样搞了,我们都知道,每次增量的提交,是没有规律可言的,也许增量中只有一行,也许有百行,而且增量的代码位置,有可能是在方法中,有可能是在资源中,所以针对增量代码的检查,是必须要做出取舍的,因为,通过一行,或者几行,很难达到一定的规范标准
163 0