Intereting Posts
Не удалось получить push-уведомление в Android с помощью Parse Как отправить электронную почту со ссылкой на приложение для Android Установка Ellipsize в TextView уменьшает линии, показанные одним (вместо того, чтобы только эллипсизация последней) Как создать диалог выбора номера? Ошибка: (31, 0) Метод Gradle DSL не найден: 'jniDebugBuild ()' Файл ресурса Xamarin Android не найден Как передавать аудио с одного устройства Android на другое устройство Android Через Bluetooth? Как создать свою собственную библиотеку Android и разместить ее Рисование 9-патча на холсте с помощью drawBitmap Android-карты: как определить центр карты после завершения перетаскивания Отсутствующие стили. Правильная ли тема выбрана для этого макета? Ошибка при запуске клиентского терминала для мобильных устройств Google Могу ли я установить значок дома на панели действий с помощью styles.xml? Ошибка Surafce Adb devices return error: ошибка протокола (нет статуса)

Android M FingerprintManager.isHardwareDetected () возвращает false на Samsung Galaxy S5

Я только что обновил Verizion Samsung Galaxy S5 (SM-G900V) до версии G900VVRU2DPD1 с помощью ручных инструкций, перечисленных на http://www.androidofficer.com/2016/06/g900vvru2dpd1-android-601-marshmallow.html

Когда я запускаю код ниже, isHardwareDetected () возвращает false. Я ожидаю, что он вернется «истина».

Googling, который я сделал, не привел к какой-либо информации так или иначе, как к считывателю отпечатков пальцев S5, поддерживаемому в Marshmallow.

У кого-нибудь есть информация о поддерживающем отпечатке пальца 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); } 

Solutions Collecting From Web of "Android M FingerprintManager.isHardwareDetected () возвращает false на Samsung Galaxy S5"

Наконец решил. Похоже, что API Android по умолчанию не способен обрабатывать некоторые устройства Samsung, поэтому решение состоит в том, чтобы добавить библиотеки Samsung для этой проблемы.

Вы можете найти документацию и библиотеки здесь: http://developer.samsung.com/galaxy/pass

После добавления библиотек вы должны добавить новое разрешение для своего манифеста:

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

И, наконец, вы можете использовать этот метод:

 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; }