无法让Android Market Licensing(LVL)可靠地运行。几乎总是返回RETRY

时间:2011-08-11 21:26:43

标签: android android-lvl

我正在尝试在我的第一个Android应用程序中使用Android许可。

我已按照在线指南操作,并使用LVL整合了ServerManagedPolicy代码。

无论我在开发者控制台中设置的许可测试响应如何,我几乎总是(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

2 个答案:

答案 0 :(得分:2)

有两件事可以帮到你:

  1. 假设您使用开发者控制台模拟响应,有时需要花费几分钟的时间来刷新您之前尝试的响应。因此,如果您模拟了FAILED响应,则可能需要等待一段时间才能收到SUCCESS响应。有时甚至重启您的设备也无济于事,所以您只需要等待。
  2. LVL机制存在一些问题,甚至对用户而言也是如此。如果设备上暂时没有互联网连接,或者某些其他网络错误,您可能会收到FAILED响应。我建议在LVL内置重试之上进行多次重试,因为我发现它不可信并且容易出错。它可能会减少您从用户那里获得的假阴性报告的数量......

答案 1 :(得分:2)

确保这在您的AndroidManifest中:

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

这是运行支票许可证代码所必需的。