Android离线可靠日期持续时间

时间:2016-09-03 16:07:07

标签: android android-alarms

我想设计一种离线付款方式,用户只能在付款期间使用该应用。我希望即使用户更改手机的时间/日期,付款时间也是可靠的。

我尝试过使用AlarmManager定期更新剩余的付款柜台。但是当用户将日期设置为过去时,这不起作用,我试图听DATE_CHANGE广播。但是,当日期设置为过去时,也不会广播。

我想知道实现此类功能的正确方法是什么。任何建议都非常感谢。

编辑1

该应用专为没有可靠互联网的地方而设计。所以大部分时间,该应用程序都是脱机使用的。所以,我不能假设会有互联网连接来检查正确的时间。

编辑2

time date set broadcast not firing in the past

ASOP issue

1 个答案:

答案 0 :(得分:2)

要在没有互联网访问的情况下明确说明,没有明确的方法可以解决您的问题。您唯一能做的就是监控您有权访问的所有时间源并检测操作(定期检查并记录数据)。

这不会使许可证到期后无法使用该应用程序,但这会使其变得更难。

第一次来源:设备时钟

您可以定期监控,例如在服务中使用CountDownTimer。在您的应用中记录UTC时间(没有时区),并确保它只会增加而不会减少。

第二次来源:GPS

请参阅Sync Android devices via GPS time?

第三次来源:Cell network

AFAIK至少有一些细胞网络有内部时间。不知道如何以及如何在Android上访问它。

第四次来源:互联网

如果您检测到活动的Internet连接,请从受信任的时间源获取时间。