Как использовать новую функцию Touch ID iOS 9.2 для последовательного обнаружения пальцев

Из примечания к выпуску:

Поддержка многоразовых совпадений Touch ID. Совпадение с предыдущей разблокировкой телефона может быть использовано с помощью метода AssessmentAccessControl: и AssessmentPolicy:localizedReason:reply:.

Для меня это означает, что событие МОЖЕТ быть запущено, если используется другой палец.

Абстрактный пример:

  1. Вход с пальцем 1, и снова с пальцем 1, и снова. Нет события.

  2. Если используется палец 2, возникает событие. Последующее использование пальца 2 не происходит.

Я полностью согласен с тем, что я не узнаю, какой палец был использован, только что был использован другой палец. Эта информация может дать мне достаточно информации, чтобы действовать.

Случай использования

Я создаю приложение для помощи в ситуациях домашнего насилия, когда жертву просят разблокировать приложение с поддержкой сенсорного ID и используют другой палец, тогда призыв о помощи незаметно стирается из приложения.

Исследования

Это не задокументирован на сайте Apple за пределами примечаний к выпуску, и Diffs, однако он присутствует в сайт Xamarin. Я посетил форумы разработчиков и не не хочу ждать подтверждения ошибки документации.

В моем сценарии устройство совместно используется Взрослым и Ребенком, оба из которых зарегистрированы в TouchID. Мне нужно определить, используется ли другой палец для защиты конфиденциальных настроек.

Вопрос

Как использовать LocalisedReasonReply, чтобы определить, использовался ли другой палец для разблокировки телефона? (или я неправильно понимаю новую функцию)

[Foundation.Export("evaluateAccessControl:operation:localizedReason:reply:")]
public virtual Void EvaluateAccessControl (SecAccessControl accessControl,LAAccessControlOperation operation, String localizedReason, [ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDActionArity2V1))]Action`2 reply)

Для справки: я вставил сюда файл LAContext.h


person halfbit    schedule 15.01.2016    source источник
comment
У меня нет ссылки, но я не думаю, что эта функция означает то, что вы думаете. Я считаю, что это гораздо более простая ситуация, в которой ваша аутентификация может обойти требование пользователя касаться датчика, если они недавно аутентифицировались с помощью сенсорного идентификатора. То есть, последовательный здесь означает последовательные запросы для аутентификации пользователя, а не последовательность пальцев, используемых для аутентификации.   -  person mah    schedule 15.01.2016
comment
@mah Я ​​думал, что описанная вами функция существовала и в более старых версиях ...   -  person halfbit    schedule 15.01.2016
comment
Вы понимаете, что примечания к выпуску, которые вы цитируете, относятся к примечаниям к выпуску 9.0, а не 9.2? И я согласен с @mah, я не совсем понимаю, как это описание будет соответствовать функции, которую вы ищете. Различия API 9.0, которые включают -[LAContext evaluateAccessControl:operation:localizedReason:reply:], также включают LAContext.touchIDAuthenticationAllowableReuseDuration, что, по-видимому, подразумевает, что они действительно означают, что пользователю не нужно прикасаться снова, если вы разрешите это.   -  person jcaron    schedule 16.01.2016


Ответы (1)


«Поддержка многоразовых совпадений Touch ID…» означает, что:

Вы можете повторно использовать аутентификацию разблокировки устройства в своем приложении, указав временной интервал в методах AssessmentAccessControl: и AssessmentPolicy:localizedReason:reply:.

Используя свойство LAContext «touchIDAuthenticationAllowableReuseDuration», вы можете повторно использовать аутентификацию разблокировки устройства в приложении, это связано с тем, что во время разблокировки устройства вы уже аутентифицируете себя. Таким образом, повторная аутентификация не требуется. (Новое представление iOS 9)

Примечание. Продолжительность времени должна быть указана в секундах. его значение по умолчанию равно «0», и вы указываете продолжительность до 5 минут, более 5 минут не увеличивает принятый интервал.

person Sagar Thummar    schedule 16.01.2016