android - FingerprintManager.isHardwareDetected() 仅在 Android Oreo 上崩溃

标签 android android-8.0-oreo

当手动请求指纹传感器权限时,oreo 对话框不显示。

我已经在 Manifest 中列出了 USE_FINGERPRINT 权限,但仍然出现异常

    W/System.err: java.lang.SecurityException: Must have android.permission.USE_FINGERPRINT permission.: Neither user 10190 nor current process has android.permission.USE_FINGERPRINT.
        at android.os.Parcel.readException(Parcel.java:2004)
        at android.os.Parcel.readException(Parcel.java:1950)
        at android.hardware.fingerprint.IFingerprintService$Stub$Proxy.isHardwareDetected(IFingerprintService.java:465)
        at android.hardware.fingerprint.FingerprintManager.isHardwareDetected(FingerprintManager.java:835)
        at ""ui.biometricAuth.BiometricAuth.getFingerPrintAuthError(BiometricAuth.java:174)
        at ""ui.biometricAuth.BiometricAuth.isTouchIDEnabled(BiometricAuth.java:225)
        at ""ui.usermanagement.LoginActivity.onCreate(LoginActivity.java:403)
        at android.app.Activity.performCreate(Activity.java:7036)
        at android.app.Activity.performCreate(Activity.java:7027)
 W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1231)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2989)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6753)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

最佳答案

我之前添加的权限如下

<uses-permission
    android:name="android.permission.USE_FINGERPRINT"
    android:requiredFeature="false" />

现在删除 android:requiredFeature="false"并仅添加

<uses-permission android:name="android.permission.USE_FINGERPRINT" />

适用于所有操作系统版本。

关于android - FingerprintManager.isHardwareDetected() 仅在 Android Oreo 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50717346/

相关文章:

android - 如何在 calabash-ios/calabash-android 中找到相关的 WebView 元素

Android:进度对话框

android - 如何在 Android 中设置红色 TextView 的删除线

android - React-Native 中带有实心阴影的文本

android - 如何在 Android 8.0 (Oreo) 中以编程方式关闭 wifi 热点(setWifiApEnabled 不再支持此版本)

android - Appium 自动服务器 - 未找到可以自动化 Chrome '68.0.3440' 的 Chromedriver

android - 系统界面已停止

android - 错误 :Execution failed for task ':app:processDebugResources' when using font folder inside res

java - 使用快捷方式管理器复制固定的快捷方式

android - android O 中的 onMessageReceived 在应用程序处于后台时未调用