我开发了一款游戏,打算将其作为付费应用程序发布,使用Android LVL和默认的ServerManagedPolicy
许可政策。现在,权力已经决定我们必须将其作为免费应用程序发布。出于某种原因,我不想删除/禁用许可证检查。我的问题是:许可服务如何处理免费应用程序?检查总是会失败或总是通过吗?有什么办法可以让许可证服务接受我的免费应用程序的任何安装许可吗?
我在官方文档中的免费应用程序中发现了以下内容,但是,它对我没什么帮助。
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),以确保许可证始终对免费应用程序有效。不幸的是,我已经失去了与该来源的链接。
注意:问题并不像听起来那么疯狂。只是我无法在不泄露某些专有信息的情况下进一步解释我的用例。
答案 0 :(得分:3)
这里没有得到任何答案,我在Android Developers组上发布了同样的问题。这是我得到的最佳答案:
从技术上讲,后端许可证服务器允许它并返回大的有效性 时间戳,但...... 市场发布者控制台不允许您上传免费的APK 并请求com.android.vending.CHECK_LICENSE权限。
在实践中,这意味着免费应用程序无法使用LVL,因为您不会 能够上传它们。
Trevor Johns,Android开发人员程序工程师
答案 1 :(得分:3)
直接从许可教程中拉出来:
免费应用程序的注意事项
目前仅支持许可 对于付费应用程序如果你已经 免费发布您的申请, 您将无法上传更新的内容 包含许可的版本(即 是,使用相同的应用程序 包名称,包括 许可许可)。这里有一些 要记住要点:
如果您想提供免费版本的应用程序 提供减少的功能集(或 它提供了完整的功能集 试用期),免费版 您的申请不得包含 许可许可,必须使用 不同的包名比付费 该应用程序的版本。 如果您想提供免费应用程序的付费版本 使用许可,你可以在一个 新包装名称。
你记得读到的可能就是:
对于免费应用程序,服务器 将有效期设置为非常有效 高值(long.MAX_VALUE)。这个 确保,只要政策有 在本地缓存有效时间戳, 它不需要重新检查 应用程序的许可证状态 未来。
关于这一点:
服务器认为用户已获得许可 如果用户被记录下来 购买了应用程序,或者如果是 申请免费提供。
答案 2 :(得分:3)
我刚刚处理同样的问题,我发现这里的信息已经过时,所以我给你更新版本。 现在可以为请求com.android.vending.CHECK_LICENSE权限的免费应用程序上传apks。但是,这并不意味着您的应用实际上可以使用它。许可概述在“要求和限制”下说明
- 您可以为免费应用实施许可控制,但前提是您使用该服务提供APK扩展文件。
我不知道这一点,无论如何我都试过了。上传工作正常(虽然它是一个免费的应用程序,我没有任何扩展文件)但用户没有得到许可服务的响应。令人困惑的部分是,当您使用开发人员帐户登录时,您将获得您在开发人员资料中选择的测试响应,因此可能认为一切正常。