Встроенная логика повторных попыток аттестации Android Safetynet

У меня вопрос: какая логика повторных попыток встроена в Google Safetynet и какая логика повторных попыток должна быть встроена в приложение? Как лучше всего построить логику уровня приложения?

Я использую аттестацию Safetynet в приложении для Android и веб-сервисе. Сеть безопасности используется для проверки того, что данные поступают из нашего приложения Android, установленного на действующем устройстве Android, и что сообщение не подделано. Используемый базовый код взят из примера документации Safetynet.

У меня возникают проблемы с проектированием логики повторных попыток для получения аттестации сети безопасности в приложении устройства в случаях, когда подключение к сети временно недоступно или API Google Safetynet недоступен в течение определенного периода времени.

Классы сети безопасности основаны на классе GoogleApi. Документация для GoogleApi говорит, что уже есть некоторая автоматическая логика тайм-аута/повторного подключения.

  • Автоматическое время ожидания и повторное подключение при необходимости

Какая логика автоматически встроена в Safetynet, и какую логику должны создавать разработчики приложений? Например, каков тайм-аут для запросов («автоматический тайм-аут») и можно ли его настроить? Сколько повторных попыток он делает и с какой стратегией повторных попыток («переподключение при необходимости»)?




Ответы (1)


Насколько я знаю, API SafetyNet имеет только прослушиватели/обратные вызовы для результатов успеха и отказа для каждого запроса, у него нет встроенной логики повторных попыток. Вы можете проверить ошибки, возникающие в OnFailureListener, с помощью их кода состояния (проверьте SafetyNetStatusCodes) и обрабатывать их с помощью собственной логики повторных попыток.

person davisjp    schedule 07.04.2019
comment
Знаете ли вы, сколько времени требуется классу Android GoogleApi, чтобы вернуться к OnFailureListener, если API-интерфейс сети безопасности недоступен? Кажется, ждать довольно долго. Нашли ли вы дополнительную информацию о том, что означает автоматическое время ожидания и повторное подключение при необходимости - функция в документах? - person Veikko; 09.04.2019
comment
Я думаю, вы, возможно, смотрите на более старую версию API, в новой вы делаете запрос непосредственно из клиента SafetyNet, а не из Google Api. Ознакомьтесь с документацией здесь: developer.android.com/training/safetynet/attestation. html - person davisjp; 09.04.2019