Google Play LIcensing - “正常回应”的含义?

时间:2012-12-24 00:40:24

标签: android google-play android-lvl google-license-manager

您好,并提前感谢您的回复。

我已将我的许可应用程序上传到Play商店。我可以使用所有静态测试许可证响应(许可,未许可等)测试并获得预期结果。到目前为止一切都很好。

但是如果我的测试设备没有互联网连接,则许可证检查总是失败。这不是我理解ServerManaged策略的工作方式。如果发现安装在最近的某个时间已获得许可,则该策略应该将信息缓存在共享的prefs文件中,并在没有Internet连接的情况下使用它。

因此,我暂时评论了许可证系统创建的prefs文件中数据的模糊处理。当我查看数据时,我发现重试计数和其他内容设置为零。这不是我所期望的。对于这样的数据,它对我来说就好像我使用的是严格的策略(我不是)。

我认为这是一个使用测试响应系统的工件,而且是真实的"用户将在其混淆的共享首选项中获取实际数据,这些数据允许它们在没有互联网连接的情况下运行。

所以我尝试将服务器响应设置为"正常响应"。当我这样做时,我总是得到一个非许可的回复。我想这是有道理的,因为我没有购买应用程序并下载它。

那么,作为开发人员,我怎样才能体验到我的最终用户体验到底的体验呢?例如,我希望能够在没有互联网连接的情况下测试这一切是如何工作的。我似乎无法弄清楚如何做到这一点?我想我可以购买我自己的应用程序,但我不确定它是否会工作,因为测试设备登录到测试帐户。开发人员必须购买自己的应用程序是没有意义的。

感谢您的任何建议。

2 个答案:

答案 0 :(得分:0)

我也经历过这种挫败感。我也想拥有与客户相同的经验。一旦我设置'正常响应',我总是会看到'NOT LICENSED'响应 - 这看起来非常不合时宜。我相信 Google需要添加的是'RESPOND_NORMALLY_AND_LICENSED'** 的设置。这将做所需的事情。

难度的核心:如果我将我的应用程序保留为“许可”,当我有互联网连接时工作正常,那么在没有连接的2分钟后,我的应用程序将停止工作作为许可(因为缓存设置在谷歌播放服务器到2分钟)。因此,如果我想每天使用我自己的应用程序,我需要生成一个禁用许可的应用程序 - 我的客户从未见过的东西。 这是一个非常糟糕的主意。

很久以前我们都学会了:“作为开发者,你必须吃自己的'狗粮'。”

  • 我已将此报告为“开发者控制台”错误,但它可能不是“错误”,这是一个非常强烈的建议 - 而且它似乎很容易实现。

作为一种解决方法,我现在已经在ServerManagedPolicy.processServerResponse()中添加了代码,只需添加两个月的许可时间并调用setValidityTimestamp()。我希望这有助于其他人。现在我满足---

答案 1 :(得分:0)

我想我找到了解决问题的可能方法。

我做了什么: 首先,我为我的应用程序的alpha / beta测试人员创建了一个google组(当然,在上传应用程序之后)。然后,我在这个谷歌小组中自行选择并接受邀请。在此之后,我将gmail开发者帐户插入到许可证测试的用户列表中,并将服务器响应设置为“RESPOND_NORMALLY”。

这样,对于我的帐户,服务器的响应将始终为“LICENSED”,并且有效时间不会在2分钟后到期。就像我买了这个应用程序一样!

此技巧的唯一限制是您必须在Google开发者控制台的测试版或Alpha版中上传您的应用,但在此之后,您还可以使用设备上传的调试应用获得“许可”答案使用通常的Eclipse IDE!您不必等待生成下载测试应用程序的链接(生成速度非常慢......最多24小时!)。