5

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

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

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

所以我暂时注释掉了许可系统创建的prefs文件中数据的混淆。当我查看数据时,我看到重试计数和其他内容设置为零。这不是我所期望的。有了这样的数据,我的行为就好像我在使用严格的政策(而我不是)。

我假设这是使用测试响应系统的产物,并且“真实”用户将在其混淆的共享首选项中获得实际数据,从而允许他们在没有互联网连接的情况下进行操作。

所以我尝试将服务器响应设置为“正常响应”。当我这样做时,我总是得到一个 NOT LICENSED 响应。我想这是有道理的,因为我还没有购买和下载该应用程序。

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

感谢您的任何建议。

4

2 回答 2

1

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

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

这样,服务器的响应对于我的账户将永远是“LICENSED”,并且有效期不会在2分钟内到期。就像我买了这个应用程序一样!

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

于 2013-07-23T01:08:21.400 回答
0

我也经历过这种挫败感。我也想和我的客户有同样的体验。一旦我设置了“正常响应”,我总是会看到“未获得许可”的响应——这似乎非常不理想。我相信Google 需要添加的是 **'RESPOND_NORMALLY_AND_LICENSED'** 的设置。那将做需要的事情。

困难的核心:如果我将我的应用程序设置为“许可”,当我有互联网连接时可以正常工作,那么在没有连接的 2 分钟后,我的应用程序将停止按许可工作(因为缓存设置在 Google Play 服务器上到 2 分钟)。因此,如果我想日复一日地使用自己的应用程序,我需要制作一个禁用许可的应用程序——这是我的客户从未见过的。 这是一个非常糟糕的主意。

我们早就学会了:“作为开发者,你必须吃自己的‘狗粮’。”

  • 我已将此报告为“开发人员控制台”错误,但它可能不是“错误”,而是一个非常强烈的建议——而且实现起来似乎很简单。

作为一种解决方法,我现在在 ServerManagedPolicy.processServerResponse() 中添加了代码,以简单地添加两个月的许可时间并调用 setValidityTimestamp()。我希望这对其他人有帮助。现在我很满足——

于 2013-01-02T20:26:12.813 回答