2

我正在尝试让 android 许可在我的第一个Android应用程序中工作。

我遵循了在线指南并使用ServerManagedPolicy集成了LVL代码。

无论我在开发者控制台中设置什么许可证测试响应,我几乎总是(10 次中有 9 次)得到一个LicenseResponse.RETRY。因为DEFAULT_MAX_RETRIES = "0"这总是转换成NOT_LICENSED

我试过了:

  • 打开 / 关闭 WiFi
  • 运行我购买的付费应用程序(它们都可以工作!)
  • 拔下 USB
  • 在虚拟机和我的真实手机中运行

我总是得到相同的结果。在我获得许可响应的少数情况下,它没有附加任何附加功能来增加最大重试次数。我认为这是问题的症结所在——我第一次尝试授权时,默认设置中没有重试或有效期容忍。

我怎样才能让它可靠地工作?


编辑 1


在日志中找到了这个。这是否意味着连接到 android 市场应用程序时出现问题?

08-18 21:12:16.071: INFO/LICENSE(10852): checkLicense
08-18 21:12:17.271: INFO/LicenseChecker(10852): Binding to licensing service.
08-18 21:12:17.281: WARN/ActivityManager(80): Unable to start service Intent { act=licensing.ILicensingService }: not found
08-18 21:12:17.281: ERROR/LicenseChecker(10852): Could not bind to service.
08-18 21:12:17.301: INFO/LICENSE(10852): dontAllow
4

2 回答 2

2

确保这在您的 AndroidManifest 中:

<uses-permission android:name="com.android.vending.CHECK_LICENSE" />

这是运行检查许可证代码所必需的。

于 2012-01-24T14:37:01.400 回答
2

有两件事可能对您有所帮助:

  1. 假设您使用开发者控制台来模拟响应,有时需要几分钟才能刷新您从之前的尝试中获得的响应。因此,如果您模拟了 FAILED 响应,您可能需要等待一段时间才能收到 SUCCESS 响应。有时即使重新启动您的设备也无济于事,因此您只需要等待。
  2. LVL 机制存在一些问题,即使在用户的设备上,当设备上一段时间没有互联网连接或其他一些网络错误时,您也可能会收到 FAILED 响应。我建议在 LVL 内置重试之上进行几次重试,因为我发现它不可信且容易出错。它可能会减少您从用户那里获得的假阴性报告的数量......
于 2011-08-18T15:26:46.713 回答