Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从断开互联网连接的win手机获取可靠的当前日期?_.net_Windows Phone 7_Windows Phone 8 - Fatal编程技术网

.net 如何从断开互联网连接的win手机获取可靠的当前日期?

.net 如何从断开互联网连接的win手机获取可靠的当前日期?,.net,windows-phone-7,windows-phone-8,.net,Windows Phone 7,Windows Phone 8,我将在windows phone中开发一项服务,以支持订阅某些功能。该应用程序也应该脱机工作。我想在完成购买并解锁功能后,我会将过期日期保存在手机上,也可能保存在服务器上,然后每次用户加载应用程序时,都会将当前日期时间与手机上保存的过期日期进行比较,然后如果功能过期,就会通知用户。我的问题是如何在手机离线时获得真实的日期,这样用户就不会通过更改手机上的日期时间来欺骗它。 你们认为这是处理订阅的明智方式吗 如果您使用应用内购买进行订阅,则只需检查许可证即可: CurrentApp.LicenseI

我将在windows phone中开发一项服务,以支持订阅某些功能。该应用程序也应该脱机工作。我想在完成购买并解锁功能后,我会将过期日期保存在手机上,也可能保存在服务器上,然后每次用户加载应用程序时,都会将当前日期时间与手机上保存的过期日期进行比较,然后如果功能过期,就会通知用户。我的问题是如何在手机离线时获得真实的日期,这样用户就不会通过更改手机上的日期时间来欺骗它。
你们认为这是处理订阅的明智方式吗

如果您使用应用内购买进行订阅,则只需检查许可证即可:

CurrentApp.LicenseInformation.ProductLicenses

您需要找到ProductId==给定id的那个,并检查IsActive==true。如果订阅过期,它将自动变为非活动状态。不过,正如您正确猜测的那样,如果设备未连接到网络许可证,则信息将仅基于本地设备时间,但这仍然是一种更好的方法,因为您不需要始终比较日期和时间。

据我所知,您无法使用任何其他可靠系统获取当前时间。正是出于这个原因,我不愿为付费功能使用节省的过期时间。我没有更好的解决方案,但你的解决方案会导致很多人欺骗系统,因为这是一种众所周知的利用应用程序的方法。据我所知,最好的方法是存储在服务器中。因为即使手机中的日期时间发生了变化,服务器也可以处理过期日期并提示用户订阅新功能。你明白了吗?@Vijay.P如果应用程序总是在线的,那就好了,但这里重点关注离线使用。将首次发布日期和时间保存在某个地方怎么样?如果更改为较早的日期,例如2012年10月12日至2011年10月12日,则您可以知道用户已更改了日期。不,这是最好的解决方法,除非你确实可以在线访问服务器。@Vijay:如果应用程序在线运行,这就行了,但我的情况不是这样。@Harush:谢谢你的建议,我认为这可以使它在某种程度上安全。