Android Market Licensing(LVL)始终返回RETRY

时间:2012-04-15 16:40:20

标签: java android android-lvl

我正在尝试在尚未发布的应用中使用Android营销许可。

我使用ServerManagedPolicy安装并集成了LVL库。

问题在于,无论例外,在运行许可证检查时,都会使用响应“RETRY”调用LicenseCheckerCallback.dontAllow。

我已经阅读了很多关于这个主题的帖子......

  • 清单文件包含CHECK_LICENSE权限
  • 我正在运行与上传到开发者帐户完全相同的.apk文件
  • 我已将测试用户添加到开发者帐户
  • 运行2.2的仿真器和运行2.3
  • 的设备的响应相同
  • 无论是以测试用户还是开发者用户身份登录,响应都相同
  • 无论我在开发者帐户中选择了LICENSED还是NOT_LICENCED,回复都是一样的
  • 虽然模拟器和设备始终都有互联网连接,但是当没有连接时,响应实际上是相同的。
  • 目前代码未被混淆

我的代码基本上是由文档提供的......

String deviceId = Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID);

mLicenseCheckerCallback = new MyLicenseCheckerCallback();
mChecker = new LicenseChecker(
            this, new ServerManagedPolicy(this,
                    new AESObfuscator(SALT, getPackageName(), deviceId)),
            BASE64_PUBLIC_KEY);

mChecker.checkAccess(mLicenseCheckerCallback);

我还有哪些方法可以让它发挥作用?

1 个答案:

答案 0 :(得分:3)

答案原来就在这里...... Android Context.bindService always returns false and ServiceConnection object is never triggered

正在从标签页调用许可检查,因此代码应该是......

String deviceId = Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID);

mLicenseCheckerCallback = new MyLicenseCheckerCallback();
mChecker = new LicenseChecker(
        getApplicationContext(), new ServerManagedPolicy(this,
                new AESObfuscator(SALT, getPackageName(), deviceId)),
        BASE64_PUBLIC_KEY);

mChecker.checkAccess(mLicenseCheckerCallback);