* INTERACT_ACROSS_USERS *导致Android指纹登录失败

Ahm*_*usa 2 permissions android fingerprint

我在我的应用程序中应用了指纹集成,以使用指纹登录。

将应用程序公开发布后,我看到了由此导致的Fabric's Crashlytics生成的数百个崩溃报告,如下所示:

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxxxx/com.xxx.xxxxx.LoginActivity}: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=26824, uid=10144 requires android.permission.INTERACT_ACROSS_USERS
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
   at android.app.ActivityThread.access$1100(ActivityThread.java:229)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:7406)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,所有崩溃仅在Samsung设备上发生!

银河J7 57%

SM-J327P 9%

银河A5 7%

SM-G532F 7%

银河J5 1%

Galaxy S6 Edge 1%

清单文件已具有以下权限:

<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
Run Code Online (Sandbox Code Playgroud)

有什么建议如何跟踪/解决此问题?我手边没有上述任何设备:/

谢谢。

Ahm*_*usa 5

看来我的问题是重复的: Android指纹:hasEnrolledFingerprints在某些Samsung上触发异常

归功于:@ david-medenjak

===============

我在运行Android 6.0.1的三星Galaxy S6上遇到了相同的问题

问题是由致电引起的

fingerprintManager.hasEnrolledFingerprints()
Run Code Online (Sandbox Code Playgroud)

我通过在之前添加检查硬件的调用来解决此问题:

fingerprintManager.isHardwareDetected()
    && mFingerprintManager.hasEnrolledFingerprints()
Run Code Online (Sandbox Code Playgroud)

在没有可用硬件的情况下检查指纹似乎在某些设备上导致此异常。

===============

谢谢