Android 免费应用程序客户端许可证有效性检查的LVL行为

Android 免费应用程序客户端许可证有效性检查的LVL行为,android,google-play,android-lvl,Android,Google Play,Android Lvl,我开发了一款游戏,打算使用Android LVL和默认的ServerManagedPolicy许可政策将其发布为付费应用程序。现在,权力已经决定,我们必须发布它作为一个免费的应用程序。由于某些原因,我不想删除/禁用许可证检查。我的问题是:授权服务如何处理免费应用?检查总是失败还是总是通过?我有没有办法让许可证服务接受我的免费应用程序的任何安装作为许可 我在官方文档中找到了以下免费应用程序,但对我帮助不大 只有通过Market发布的付费应用程序才能使用该服务。[…]由于免费应用程序被视为对所有用户

我开发了一款游戏,打算使用Android LVL和默认的
ServerManagedPolicy
许可政策将其发布为付费应用程序。现在,权力已经决定,我们必须发布它作为一个免费的应用程序。由于某些原因,我不想删除/禁用许可证检查。我的问题是:授权服务如何处理免费应用?检查总是失败还是总是通过?我有没有办法让许可证服务接受我的免费应用程序的任何安装作为许可

我在官方文档中找到了以下免费应用程序,但对我帮助不大

只有通过Market发布的付费应用程序才能使用该服务。[…]由于免费应用程序被视为对所有用户进行了许可,因此目前仅对付费应用程序进行许可。

我本以为检查会失败,但我记得在某个地方读到,对于免费应用,授权服务器将返回一个非常大的有效时间戳(long.MAX),以确保许可证对免费应用始终有效。不幸的是,我失去了与该来源的链接


注意:这个问题并不像听起来那么疯狂。只是我无法在不透露一些专有信息的情况下进一步解释我的用例

这里没有得到任何答案,我在小组上发布了相同的问题。以下是我得到的最佳答案:

从技术上讲,后端许可证服务器允许它并返回一个大的有效性 时间戳,但是。。。 market publisher控制台不允许您上传免费的APK 并请求com.android.vending.CHECK_许可

实际上,这意味着免费应用程序不能使用LVL,因为你不会 能够上传它们

Trevor Johns,Android开发程序工程师


直接从许可教程中得出以下结论:

免费应用的注意事项

目前仅支持授权 对于付费申请。如果你已经 免费发布您的应用程序, 您将无法上载更新的文件 包含许可的版本(即 是一个使用相同 包名称,其中包括 许可证)。这里有一些 要记住的要点:

如果您想提供免费版本的应用程序 提供精简的功能集(或 它为用户提供了完整的功能集 试用期),免费版 您的申请不得包含以下内容: 授权权限,并且必须使用 与已支付的包名称不同的包名称 应用程序的版本。 如果您想提供免费应用程序的付费版本 使用许可,您可以在 新的包名

你所记得的可能是:

对于免费应用程序,服务器 将有效期设置为非常短的时间 高值(长最大值)。这 确保,前提是该策略 在本地缓存有效时间戳, 它将不需要重新检查 中应用程序的许可证状态 未来

与此相关:

服务器认为用户已获得许可 如果用户被记录为 购买了应用程序,或者 申请是免费的


我只是在处理同一个问题,我发现这里的信息已经过时,所以我给你更新的版本。 现在可以为请求com.android.vending.CHECK_许可的免费应用上传APK。然而,这并不意味着你的应用程序可以实际使用它。许可概述中的“要求和限制”下有说明

  • 您可以对免费应用程序实施许可控制,但前提是您使用该服务提供APK扩展文件

我不知道这一点,但我还是尝试了。上传工作正常(虽然它是一个免费的应用程序,我没有任何扩展文件),但用户没有从授权服务得到响应。令人困惑的是,当您使用开发人员帐户登录时,您会得到您在开发人员配置文件中选择的测试响应,因此可能会认为一切正常。

以下是有关有效性时间戳(long.MAX_值)的链接,您从何处获得最后一位?LVL的官方文档目前显示了一些不同之处。看到我的照片了吗?@daka对不起,我到现在才看到这个。但是看看你的问题,看起来你已经解决了:)就目前而言,LVL库对于免费应用程序也很有用,正如文档中所述,通过使用APK扩展文件。