Windows phone 8 购买应用程序后的Windows Phone 8许可证信息

Windows phone 8 购买应用程序后的Windows Phone 8许可证信息,windows-phone-8,trial,Windows Phone 8,Trial,更新:进一步调查,我刚刚在beta store中提交了一个测试应用程序,以显示CurrentApp.LicenseInformation.IsActive和CurrentApp.LicenseInformation.IsTrial的值。两者都返回false。这是正常的行为吗 我刚刚在WP8商店发布了一个应用程序,它有试用和购买完整版本选项。由于WP8除了模拟之外没有任何机制来测试试购,所以我不得不发送到商店。令我惊讶的是,我在手机上完成了购买,但该应用程序似乎仍在试用中,并显示了购买选项。我正

更新:进一步调查,我刚刚在beta store中提交了一个测试应用程序,以显示CurrentApp.LicenseInformation.IsActive和CurrentApp.LicenseInformation.IsTrial的值。两者都返回false。这是正常的行为吗


我刚刚在WP8商店发布了一个应用程序,它有试用和购买完整版本选项。由于WP8除了模拟之外没有任何机制来测试试购,所以我不得不发送到商店。令我惊讶的是,我在手机上完成了购买,但该应用程序似乎仍在试用中,并显示了购买选项。我正在使用来自msdn的代码

代码的主要部分是

public static void RefreshCache()
    {
        LicenseManager.isActiveCache = CurrentApp.LicenseInformation.IsActive;
        LicenseManager.isTrialCache = CurrentApp.LicenseInformation.IsTrial;
        LicenseManager.RaiseLicenseChanged();
    }

我可以看到refresh方法在适当的位置和需要刷新时被调用

因此,此代码不起作用的唯一可能性是
CurrentApp.LicenseInformation.IsActive
始终返回false

我在SE和Google上搜索过,有人提到iActive总是错误的,我在某处看到它在24小时后刷新并开始返回真

是的,我看过微软的试用指南,我的代码也符合它,因为它还检查了
CurrentApp.LicenseInformation.IsActive
,然后再检查
IsTrial

有人能告诉我我有什么问题吗?或者购买Windows Phone 8应用程序真的需要很长时间才能刷新手机上的许可证吗

注意:

  • 在网络商店中,应用程序显示为在我的帐户中购买
  • 我对手机进行了出厂重置,然后去了商店,应用程序仍在运行 显示为试验。但在下载后,点击购买,它就 刷新(说重新安装)和现在购买按钮已从 商店
  • 我使用的是用于开发和调试/测试的同一部手机,所以它是开发人员解锁的,但是已经重新安装了factory reset\app,但运气不好
  • 我的应用程序没有应用内puchase,与此类代码无关

这是为了更新CurrentApp.LicenseInformation.IsActive对于WP始终为FALSE。这意味着sdktrialexperiencesample是一次性的东西。您只需检查IsTrial是否为真,即可了解试用模式是否已打开,否则强制假定应用程序已付费。

是,至少部署在beta store中的应用程序在iActive和IsTrial中都返回false。如前所述,IsActive的检查无效。事实上,这也很令人困惑

正如你所说的,如果你想有试用经历,你只需要测试IsTrial。下面是一篇如何做到这一点的好文章:。如果您正确地为问题添加了标签(例如windows-phone-8标签),您可能会更快地得到答案。您所指的文章和附带的windows phone试用体验示例从根本上是错误的。这就是这篇文章的起源。我希望人们不要提及那篇文章。感谢您对标记的建议。你们是推荐Microsoft.Phone.Marketplace.LicenseInformation.Istrial还是CurrentApp.LicenseInformation.Istrial()?我当前的商店应用程序使用Microsoft.Phone.Marketplace.LicenseInformation.Istrial,但它不起作用。嗨,你解决过这个问题吗?我和你有同样的问题。在这里:
    public static LicenseModes LicenseMode
        {
            get
            {
#if DEBUG
                return simulatedLicMode;
#else // DEBUG
                if (LicenseManager.isActiveCache)
                {
                    return LicenseManager.isTrialCache ? LicenseModes.Trial : LicenseModes.Full;
                }
                else // License is inactive.
                {
                    return LicenseModes.MissingOrRevoked;
                }
#endif // DEBUG
            }
        }