Android обнаружить пользователь, изменяющий время устройства часов - PullRequest
3 голосов
/ 24 октября 2011

Мое приложение требует правильного времени (не может полагаться на время устройства, так как пользователь может изменить его + оператор может быть недоступен или не поддерживает NITZ). Первоначально я использую http-вызовы на доверенном сервере, однако бывают ситуации, когда сеть недоступна.

Есть ли другой вариант, который я могу использовать?

Могу ли я рассчитывать на трансляцию ACTION_TIME_CHANGED, чтобы определить, что пользователь изменил часы устройства? Всегда ли должно быть запущено мое приложение, чтобы получить это уведомление (этого я бы хотел избежать)?

Спасибо!

1 Ответ

2 голосов
/ 24 октября 2011

Мое приложение требует правильного времени

Никогда не полагайтесь на точное время клиента на любой платформе.

Изначально я использую http-вызовы на доверенном сервере, однако бывают ситуации, когда сеть недоступна.

Тогда вы не можете иметь точное время по определению.

Есть ли другой вариант, который я могу использовать?

Вы можете создать собственную прошивку, которая не позволяет пользователю устанавливать время.

Могу ли я рассчитывать на трансляцию ACTION_TIME_CHANGED, чтобы обнаружить, что пользователь модифицировал часы устройства?

Нет, поскольку существует несколько возможных причин, по которым эта передача будет отправлена.

Всегда ли должно быть запущено мое приложение для получения этого уведомления (этого я бы хотел избежать)?

Я могу вам сказать, что единственными получателями ACTION_TIME_CHANGED, которые я вижу в исходном коде Android, являются те, которые регистрируют его через registerReceiver(), а не в манифесте. Эта трансляция не соответствует обычной схеме, где требуется registerReceiver(). Возможно, вам будет проще попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...