но однозначных ответов нет. Также на веб-сайте samsung упоминается, что все устройства samsung поддерживают Pass SDK, но не упоминает поддержку API отпечатков пальцев Android.
Да, поддерживает .. Я пробовал играть с ними пару месяцев назад
- personAkshay  schedule04.08.2017
comment
да, но какие все устройства не поддерживают API Android? Кажется, что разные люди имеют разный опыт в зависимости от рассматриваемой модели и версии Android на ней.
- personColonD  schedule04.08.2017
comment
Я пробовал это на s7 marshmallow .. на каком устройстве вы хотите, чтобы он работал?
- personAkshay  schedule04.08.2017
comment
Это для приложения, которое я публикую. Я хотел бы знать, на каких устройствах это не работает, потому что у моих пользователей, вероятно, будут немного более старые телефоны (не знаю, какие все у них будут). поэтому я хотел бы обеспечить максимальную совместимость. если количество телефонов велико, я постараюсь обеспечить поддержку как для Pass SDK, так и для Android API.
- personColonD  schedule04.08.2017
comment
Также было бы хорошо для устранения неполадок, если какие-либо пользователи сообщают, что не могут использовать эту функцию, я могу знать, является ли это ошибкой или нет.
- personColonD  schedule04.08.2017
comment
Вы ориентируетесь только на samsung ... если да, напишите на форуме developer.samsung.com - personAkshay  schedule04.08.2017
comment
Нет. Все телефоны. Я, вероятно, мог бы использовать обертку для обоих, если нет ответа. Думаю, у Nexus тоже есть собственный SDK
- personColonD  schedule04.08.2017
В результате моего небольшого расследования я обнаружил следующее. Pass API поможет с устройствами Samsung, у которых до Android 6 был fingerprint api. Это устройства 2014 года выпуска с отпечатком пальца. Список устройств можно найти здесь. https://en.wikipedia.org/wiki/Samsung_Galaxy Основные устройства:
Samsung Galaxy s5 (и его модификации mini, plus)
Samsung Galaxy Note 4 (примечание 4 край)
Они не поддерживают стандартный API Google FingerPrint даже после обновления Android до версии 6.
После более четкого понимания требований из комментария под моим ответом, вот обновленный ответ
Pass - это SDK, отвечающий за функцию отпечатков пальцев на устройствах Samsung. Что вы можете сделать, вы можете проверить, использует ли устройство Pass SDK или нет.
Ниже приведен код для проверки:
FingerprintManager fingerprintManager = (FingerprintManager) getApplicationContext().getSystemService(Context.FINGERPRINT_SERVICE);
boolean isFingerprintSupported = fingerprintManager != null && fingerprintManager.isHardwareDetected();
if (!isFingerprintSupported && SsdkVendorCheck.isSamsungDevice()) { // for samsung devices which doesn't support Native Android Fingerprint API
Spass spass = new Spass();
try {
spass.initialize(context);
isFingerprintSupported = spass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT);
} catch (SsdkUnsupportedException | UnsupportedOperationException e) {
//Error handling here
}
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // for devices which doesn't support Pass SDK
FingerprintManager fingerprintManager = (FingerprintManager) getApplicationContext().getSystemService(Context.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
// This device is not supporting fingerprint authentication
} else if (!fingerprintManager.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
}
}
Привет, спасибо за ответ, но вопрос заключался в том, продолжает ли Samsung использовать собственный SDK для отпечатков пальцев или они перешли на собственный SDK для Android после M. Мы хотели знать этот случай для (а) устройств, которые поставлялись с M и (b ), которые были обновлены до M. Мы наконец решили игнорировать все другие SDK и просто поддерживать устройства с родным SDK. Хотя спасибо за ответ
- personColonD; 27.06.2018
comment
@ColonD благодарит за терпение и за уточнение требований. Я обновил свой ответ. Пожалуйста, посмотрите. Я думаю, вы получите от этого какой-нибудь указатель.
- personVikasdeep Singh; 27.06.2018
comment
@ColonD ты проверил мой ответ? Я не слышал от вас никаких комментариев после моего обновления.
- personVikasdeep Singh; 04.07.2018
comment
Привет, извините за это. Кажется, ваш код охватывает все основы проверки обоих API. Поскольку я занимался этим очень давно, я решил поддерживать только собственный API, поэтому я забыл об этом. Проголосовал за ваш ответ, так как он должен работать во всех случаях, связанных с телефонами Samsung :)
- personColonD; 04.07.2018
comment
@ColonD Поскольку вы изменили свое мнение, т.е. требование, но мой ответ будет охватывать все случаи, пожалуйста, примите мой ответ, чтобы он мог помочь и другим.
- personVikasdeep Singh; 04.07.2018
comment
@ColonD, кстати, мой первоначальный ответ был просто для поддержки Native API, но вы сказали, что хотите проверить Samsung SDK, поэтому я обновил свой ответ :)
- personVikasdeep Singh; 04.07.2018
comment
Еще раз спасибо за ответ. Хотя ваш ответ действительно показывает как поддерживать оба API, мой вопрос касался того, перешла ли Samsung на собственный API, чтобы мы могли решить, стоит ли поддерживать передачу вместе с родным. см. ответ Евгения Мишустина stackoverflow.com/a/51168447/8258872 - personColonD; 04.07.2018
comment
Я уже знал как с самого начала поддерживать API отпечатков пальцев. Вопрос был в том, использовала ли Samsung в своих телефонах технологию pass over native (это было моим требованием с самого начала).
- personColonD; 04.07.2018
comment
этот ответ еще действителен? Я попытался добавить зависимости spass sdk, и студия Android не распознала его.
- personSiddarth G; 17.11.2020
Я с уверенностью могу сказать вам по собственному опыту, что некоторые телефоны Samsung продолжают использовать библиотеку Spass даже на Android M и более поздних версиях. Например, сейчас я тестирую мобильную ОС: Android 6.0.1 (Galaxy Note 4 Edge). Я написал код, который выводит данные в журналы следующим образом:
/*
* This function evaluates which fingerprint helper should be instantiated (if any)
*/
public static FingerprintHelper initializeFingerprintHelper(Context context){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
FingerprintManager manager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (manager != null) {
logger.info("Android native fingerprint manager exists");
if (manager.isHardwareDetected()) {
logger.info("Android native fingerprint manager detected hardware");
if (manager.hasEnrolledFingerprints()) {
logger.info("Android native fingerprint manager has enrolled fingerprints");
}else{
logger.info("Android native fingerprint manager has no enrolled fingerprints");
}
return new AndroidFingerprintHelper(context);
}
}
}
try{
logger.info("Android native fingerprint manager is null, trying Samsung SPASS rollback");
Spass spass = new Spass();
spass.initialize(context);
if(spass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT)){
return new SamsungFingerprintHelper(context);
}
} catch (SsdkUnsupportedException e) {
logger.error("Spass library is missing on the device");
}
return null;
}
И из логов в консоли вижу, что хотя Версия Android на устройствах M (6.0.1) - метод
manager.isHardwareDetected()
возвращает false, и метод переходит к инициализации Spass lib, и он завершается успешно. Так что устройство определенно использует библиотеку Spass на android M.
personEvgeniy Mishustinschedule04.07.2018
comment
Итак, это устройство, которое выпустило pre-Marshmallow и обновлено до Marshmallow, верно?
- personColonD; 04.07.2018
comment
@ColonD, я не могу сказать это на 100%.
- personEvgeniy Mishustin; 15.07.2018