Android 为什么“hasEnrolledFingerprints”给出的错误是,它只需要在我的片段中获得权限,而不需要在谷歌的活动中获得权限';例如什么?

Android 为什么“hasEnrolledFingerprints”给出的错误是,它只需要在我的片段中获得权限,而不需要在谷歌的活动中获得权限';例如什么?,android,android-fragments,android-6.0-marshmallow,android-fingerprint-api,Android,Android Fragments,Android 6.0 Marshmallow,Android Fingerprint Api,我正在尝试在我的应用程序中实现谷歌的指纹API(特别是在我的片段中)。谷歌给出了一个例子,但它是在一个活动中实现的 我的具体问题是,下面的代码用于检查是否已经注册了指纹,它给了我一个错误(下面的屏幕截图): 问题-->我需要做什么改变才能使它在我的片段中工作(与谷歌这样的活动相反) Android 6.0必须在运行时“请求”权限 危险权限可使应用程序访问用户的 机密数据。如果您的应用程序在其 在清单中,系统自动授予权限。如果你列出 危险的权限,用户必须明确批准 你的应用程序 即使您的清单中有,我

我正在尝试在我的应用程序中实现谷歌的指纹API(特别是在我的片段中)。谷歌给出了一个例子,但它是在一个活动中实现的

我的具体问题是,下面的代码用于检查是否已经注册了指纹,它给了我一个错误(下面的屏幕截图):

问题-->我需要做什么改变才能使它在我的片段中工作(与谷歌这样的活动相反)


Android 6.0必须在运行时“请求”权限

危险权限可使应用程序访问用户的 机密数据。如果您的应用程序在其 在清单中,系统自动授予权限。如果你列出 危险的权限,用户必须明确批准 你的应用程序

即使您的清单中有
,我的理解是您必须请求许可。因此,看起来错误是因为你的应用程序没有运行时权限使用指纹管理器

(只有90%的把握,因为我现在坚持5.0,对不起)


更新:

公共静态最终字符串使用\u指纹------在API级别23中添加

允许应用程序使用指纹硬件

防护等级:正常

因此,在运行时似乎不需要此权限

1) 你的舱单上有许可吗

2) 您应该将以下代码放入您的代码中,以检查权限是否因某种原因被撤销/未授予

if (ContextCompat.checkSelfPermission(thisActivity,
            Manifest.permission.USE_FINGERPRINT) // this might need massaged to 'android.permission.USE_FINGERPRINT'
    != PackageManager.PERMISSION_GRANTED) {
 Log.d ("TEST", "You don't have permission");
 }
(或与此相近的东西)比如

if (ContextCompat.checkSelfPermission(thisActivity,
            Manifest.permission.USE_FINGERPRINT) // this might need massaged to 'android.permission.USE_FINGERPRINT'
    != PackageManager.PERMISSION_GRANTED) {
 Log.d ("TEST", "You don't have permission");
 }