Android M FingerprintManager.isHardwareDetected()在三星Galaxy S5上返回false

Android M FingerprintManager.isHardwareDetected()在三星Galaxy S5上返回false,android,Android,我刚刚更新了Verizion三星Galaxy S5(SM-G900V)至G900VVRU2DPD1版本,使用的手册说明见 当我运行下面的代码时,ishardwaredettected()返回“false”。我希望它会返回“真” 我所做的谷歌搜索并没有产生任何关于S5指纹读取器在棉花糖支持下的信息 有人知道S5的指纹读取器是否受支持吗 FingerprintManager manager = (FingerprintManager) getSystemService(FINGERPRINT

我刚刚更新了Verizion三星Galaxy S5(SM-G900V)至G900VVRU2DPD1版本,使用的手册说明见

当我运行下面的代码时,ishardwaredettected()返回“false”。我希望它会返回“真”

我所做的谷歌搜索并没有产生任何关于S5指纹读取器在棉花糖支持下的信息

有人知道S5的指纹读取器是否受支持吗

    FingerprintManager manager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
    if (manager != null) {

        if (ActivityCompat.checkSelfPermission(this, permission.USE_FINGERPRINT) !=
                PackageManager.PERMISSION_GRANTED) {
            retVal.append(INDENT).append("Fingerprint permission was not granted")
                    .append(EOL);
        } else {
            retVal.append(INDENT).append("Fingerprint hardware detected: ")
                    .append(manager.isHardwareDetected()).append(EOL);
            retVal.append(INDENT).append("Has Enrolled Fingerprint(s): ")
                    .append(manager.hasEnrolledFingerprints()).append(EOL);
        }
    } else {
        retVal.append(INDENT).append("no FingerprintManager available").append(EOL);
    }

终于解决了。看起来android默认API无法处理某些三星设备,因此解决方案是为此问题添加三星库

您可以在此处找到一些文档和库:

添加库后,您必须向清单添加新权限:

<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />

你解决这个问题了吗??我也有同样的问题Hey Miguel,这对其他非三星设备有效吗?@Kennedy no,谈到哪些设备可以使用SDK:“任何支持指纹传感器和Android 4.2(Jelly Bean API 17)及以上版本指纹服务的三星移动设备。”如果您需要检查已注册的手指,请使用以下选项:SpassFingerprint SpassFingerprint=新SpassFingerprint(上下文);返回spassFingerprint.hasRegisteredFinger();有人能在三星Galaxy J7上确认一下吗?
private boolean isFingerprintSupported() {
  boolean isFingerprintSupported = fingerprintManager != null && fingerprintManager.isHardwareDetected();
  if (!isFingerprintSupported && SsdkVendorCheck.isSamsungDevice()) {
    Spass spass = new Spass();
    try {
        spass.initialize(context);
        isFingerprintSupported = spass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT);
    } catch (SsdkUnsupportedException | UnsupportedOperationException e) {
        // Error handling
    }
  }
  return isFingerprintSupported;
}