2013-10-29 37 views
4

在WP8上有一个LicenseInformation类,用于了解应用程序是处于试用状态还是已经购买。Windows Phone 8试用到期时间

现在我想要做的就是让我的应用程序只能在试用模式下工作7天(并在此后过期)。

MSDN上的文档现在在这个主题上有些误导,所以在阅读它们之后我有这些问题。

  1. 是LicenseInformation.ExpirationDate对我的目的没用吗? "This API always returns 9999 – 12 – 31 (ETERNITY_FILETIME_TIME)."似乎试用许可证本身永不过期,这是正确的吗?

  2. 可以使用LicenseInformation.IsActive来代替吗? “May return false if the license is missing, expired, or revoked.”,“IsTrial returns true even after the trial period ends. IsActive, however, will return false after the trial period ends.”如果是这样,我如何设置到期日期?

谢谢!

+0

也许是因为你处于调试模式? –

回答

5
  1. 是的,到期时间始终是DateTime.Max值。

  2. 不,这不符合您的需求。

试用API中没有任何内容在特定时间限制后启用过期。你必须自己实现这个功能。

要实现到期后7天使用,必须做到以下几点:

  • 记录当第一次使用该应用程序的日期。
  • 当随后开始时,检查是否仍处于试用模式,以及自首次使用后是否超过7天。
  • 如果这两个测试都返回true,则假定试用版已过期并在您的应用中采取适当的措施。

您可以在隔离存储中跟踪第一次使用日期/时间,但请注意,如果用户卸载并重新安装,他们将能够再次运行试用。

作为替代方案,您需要将设备ID和首次使用日期/时间存储在您自己的网络服务器上。然后您检查该数据,因为用户无法重置它。
缺点是需要运行服务器并确定应用程序无法连接到服务器时会发生什么情况。 (没有网络访问或服务器停机。)

如果您想要考虑具有多个设备的用户,但这可能超出合理需要考虑的事情,情况会变得更加复杂。

+0

我遇到了与审判系统相同的混淆和矛盾的解释。我认为如果试用期已过,操作系统会自动将用户锁定在应用外。仍然有问题,他们可以重新安装应用程序来重置试用版,但我很满意这种情况。在代码中,我们根本没有处理试用状态 - 我们希望提供完整的功能 - 并且我们希望玩家购买游戏,以便他们不会失去进度。 –

+0

所以我的问题是,操作系统自动执行此操作,还是我们要编写代码来处理它? –

+0

用户是否可以通过将设备ID和日期存储在移动设备上的漫游数据文件夹中解决用户重新安装应用程序的问题?可能在Windows10中有@Rorschach的 – Rorschach