4

在 WP8 上有一个 LicenseInformation 类来了解应用程序是处于试用状态还是已经购买。

现在我想做的是让我的应用程序仅在试用模式下工作 7 天(然后过期)。

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

  1. LicenseInformation.ExpirationDate 对我的目的没有用吗?“此 API 始终返回 9999 – 12 – 31 (ETERNITY_FILETIME_TIME)。” 似乎试用许可证本身永不过期,这是正确的吗?

  2. 可以使用 LicenseInformation.IsActive 代替吗?“如果许可证丢失、过期或吊销,可能返回 false。 ”、“ IsTrial 即使在试用期结束后也会返回 true。但是,IsActive 会在试用期结束后返回 false。 ”如果是这样,我该如何设置截止日期?

谢谢!

4

1 回答 1

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

  2. 不,这不足以满足您的需求。

试用 API 中没有任何内容可以在特定时间限制后启用到期。您必须自己实现此功能。

要在使用 7 天后到期,您必须执行以下操作:

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

您可以在独立存储中跟踪首次使用日期/时间,但请注意,如果用户卸载然后重新安装,他们将能够再次运行试用版。

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

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

于 2013-10-29T17:58:22.717 回答