4

ServerManagedPolicy我开发了一款游戏,打算使用带有默认许可策略的 Android LVL 将其作为付费应用程序发布。现在,当权者决定我们必须将其作为免费应用程序发布。出于某种原因,我不想删除/禁用许可证检查。我的问题是:许可服务如何处理免费应用程序?检查是总是失败还是总是通过?有什么方法可以让许可服务接受我的免费应用程序的任何安装作为许可?

我在官方文档中的免费应用程序中找到了以下内容,但是对我没有多大帮助。

Only paid applications published through Market can use the service.[...] Licensing is currently for paid apps only, since free apps are considered licensed for all users.

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

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

4

3 回答 3

4

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

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

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

于 2012-06-21T13:10:30.240 回答
4

直接从许可教程中提取:

免费应用程序的注意事项

目前仅付费应用程序支持许可。如果您已将应用程序免费发布,您将无法上传包含许可的更新版本(即使用相同包名称且包含许可权限的应用程序)。以下是一些需要牢记的要点:

如果您想提供应用程序的免费版本,该版本提供减少的功能集(或在试用期内提供完整的功能集),您的应用程序的免费版本不得包含许可许可,并且必须使用与该应用程序的付费版本。如果您想提供使用许可的免费应用程序的付费版本,您可以在新的包名称下这样做。

你记得读过的大概是这样的:

对于免费应用程序,服务器将有效期设置为非常高的值(long.MAX_VALUE)。这样可以确保,如果 Policy 已经在本地缓存了有效性时间戳,则以后不需要重新检查应用程序的许可证状态。

关于这一点:

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

于 2011-04-27T20:31:57.517 回答
3

在这里没有得到任何答案,我在Android 开发者组上发布了同样的问题。这是我得到的最佳答案:

从技术上讲,后端许可证服务器允许它并返回一个大的有效时间戳,但是......市场发布者控制台不允许您上传免费的 APK 并请求 com.android.vending.CHECK_LICENSE 权限。

实际上,这意味着免费应用程序无法使用 LVL,因为您将无法上传它们。

Trevor Johns,Android 开发程序工程师

于 2011-02-07T05:15:04.703 回答