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);                }            });        }    }

更多相关文章

  1. Android控件拖拽功能的实现
  2. Android(安卓)中 handle Message 的简单使用笔记
  3. android 动态改变控件位置和大小
  4. eclipse中build没有apk输出
  5. android 连接 wsdl webservice 解析
  6. RecyclerView多功能分割线,横竖分割线,带padding,允许取消指定分割
  7. android intent 传递list或者对象
  8. Android(安卓)FFmpeg开发(三)JNI访问Java变量和方法
  9. android 动态改变控件的位置的方法

随机推荐

  1. 第十五期:英语流利说 Android(安卓)架构演
  2. Flutter沉浸式透明状态栏|flutter自定义
  3. Android(安卓)7.0,6.0系统相机调用问题解
  4. Android中的缓存概述
  5. Android(安卓)MVVM:Google 为 Android(安
  6. Delphi/C++ Builder 开发 Android(安卓)
  7. android 6.0 新特性
  8. "Android系统框架"-Androi的面试必问部分
  9. android 该文件包与具有同一名称的现有文
  10. Android软件开发之盘点界面五大布局(十六)