Здравствуйте!
В один прекрасный день приходит ко мне менеждер и говорит: «Можем ли мы запретить пользователю менять время на телефоне?». И конечно же ответ мой был нет, но это не решало задачу. Необходимо было искать выход из ситуации.
Критерии для решения были следующими:
- должно работать без частых синхронизаций с сервером, например, достаточно взять время раз в месяц.
- должно быть устойчиво к переводу времени назад/вперед/смене часового пояса
- работать при перезагрузке устройства/неожиданном завершении/ вытаскивании батареи
- не отклоняться от эталонного времени на слишком большие значения, в моем случае было 5 минут.
- если все же удалось обмануть, то отслеживать этот момент
Мы сели, подумали, и нашелся другой приемлемый вариант — вести свое с блэкджеком и ... независимое от девайса время.