即使处于离线模式,我的移动应用如何自动使内容过期?

时间:2016-10-16 12:17:08

标签: android ios mobile

我的客户要求他们的商业应用是在7天内下载到设备后自动使内容过期,即使在以下情况下:
+没有互联网连接连接并检查服务器的过期时间
+停止客户尝试恶意修改其设备中的时间以扩展过期时间

当内容过期后,它将从设备中删除,无法再观看。

经过几天的Google研究,我仍然没有找到合适的方法。

3 个答案:

答案 0 :(得分:0)

为什么不能在下载时在内容中添加过期日期?然后检查是否在本地过期,没有任何控制服务器端。

答案 1 :(得分:0)

有一些建议,但不足以涵盖所有情况,如果你将它们结合起来可能会有用:

1-根据最后知道位置获取时间 2-获取网络时间以便用户     改变他们的设备时间不重要(需要互联网     连接)

答案 2 :(得分:0)

对此没有很好的解决方案。你有几个选择,其中没有一个是完美的。

选项1 - 使用上次已知位置的日期/时间

如果应用程序无法有效跟踪用户的位置,则需要您在应用程序中请求GPS访问,这可能与用户有关。但基本上得到最后的已知位置,并且返回的Location对象将是最后一次位置检查的时间。有两件事可以阻止它100%工作。首先,对于较新版本的Android,用户可以禁用某些应用权限。这意味着他们可以禁止GPS访问您的应用。要解决此问题,您可以在应用启动时检查此信息,并告知用户除非启用GPS访问,否则他们无法访问任何内容。其次,如果用户没有GPS信号,则最后已知的位置可能是从几天前开始的,意味着“当前时间”将从最后的GPS信号冻结。此外,有些设备没有GPS芯片,所以这对他们不起作用。

选项2 - 尝试通过在应用中记录日期/时间来检测系统日期/时间更改。

基本上,这需要一些工作来跟踪每次启动时的系统日期/时间,以及应用中每个会话的持续时间。使用此日志,您可以与当前/日期时间进行比较,并查看用户是否正在回滚时钟。这并不完美,因为理解您的支票的聪明​​用户可以将其回滚到最后一次关闭应用程序的时间,但至少这会限制他们访问内容7天运行。此外,需要一个真正专注的人来跟踪/利用您的支票。大多数用户只是尝试将他们的时钟回滚到过去的日期,并且很容易捕获。使用此方法,请确保以UTC时间捕获/存储所有时间,以便时间更改不会触发虚假欺诈方案。

<强>建议

就个人而言,如果您对应用程序的GPS权限没问题,我会使用这两个选项。如果可用,并且在用户许可的情况下,请使用上一个已知位置来获取时间。如果不可用,或者用户已删除权限,请使用运行日期/时间和持续时间的本地存储作为后备。