Bry*_*yan 5 android android-permissions android-6.0-marshmallow android-fingerprint-api
我期待着开始使用Marshmallow指纹认证API.我理解要求获得许可,我必须使用以下方法:
ContextCompat.checkSelfPermission(getContext(), Manifest.permission.USE_FINGERPRINT);
Run Code Online (Sandbox Code Playgroud)
我必须检查设备是否正在运行API级别23或更高级别.但在我要求许可之前,我想检查设备是否真的有一个指纹扫描仪开始.我找到了以下两种方法来检查:
FingerprintManager manager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE);
manager.isHardwareDetected();
manager.hasEnrolledFingerprints();
Run Code Online (Sandbox Code Playgroud)
但是这两种方法都需要被USE_FINGERPRINT许可才能被调用.为什么我要求使用我甚至不知道存在的指纹扫描仪?有没有其他方法可以确定扫描仪是否存在?或者是首先要求许可的唯一方法?
Bry*_*yan 10
我刚刚找到了这个类FingerprintManagerCompat,它完全符合你的期望:
协调对指纹硬件的访问的类.
在M之前的平台上,此类的行为与没有可用的指纹硬件相同.
FingerprintManager此类中的相同方法不需要USE_FINGERPRINT权限,使您可以在请求USE_FINGERPRINT权限之前调用它们.
FingerprintManagerCompat manager = FingerprintManagerCompat.from(mContext);
manager.isHardwareDetected();
manager.hasEnrolledFingerprints();
Run Code Online (Sandbox Code Playgroud)
这些方法也会在Marshmallow之前的设备上产生预期的错误结果.
尝试hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)一个PackageManager实例(你可以getPackageManager()通过任何方便的方式获得一个Context).
| 归档时间: |
|
| 查看次数: |
4352 次 |
| 最近记录: |