0

可能重复:
无法使 Android 市场许可 (LVL) 可靠地工作。几乎总是返回 RETRY

我在Android中使用的是LVL系统,我的问题是它总是在执行“dontallow”方法。我正在我自己的手机上对其进行测试,该手机关联了我的 google 帐户,因此它应该收到许可响应(我在我的个人资料中配置了此响应)。我的代码如下:

public void ComprobarLicencia()
    {
         // Construct the LicenseCheckerCallback. The library calls this when done.
        mLicenseCheckerCallback = new ComprobadorLicencia();

        String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
        // Construct the LicenseChecker with a Policy.
        mChecker = new LicenseChecker(
            this, 
            new ServerManagedPolicy(this, new AESObfuscator(Constantes.SALT, getPackageName(), deviceId)
            ),
            Constantes.clave_publica_licencia
        );

        mChecker.checkAccess(mLicenseCheckerCallback);
    }



private class ComprobadorLicencia implements LicenseCheckerCallback 
    {
        public void allow() 
        {
            if (isFinishing()) 
            {
                // Don't update UI if Activity is finishing.
                return;
            }
        }

        public void dontAllow() 
        {
            if (isFinishing()) 
            {
                // Don't update UI if Activity is finishing.
                return;
            }
            showDialog(Constantes.dialog_licencia_incorrecta);
        }

        @Override
        public void applicationError(ApplicationErrorCode errorCode) 
        {
            if (errorCode == ApplicationErrorCode.NOT_MARKET_MANAGED)
            {
                showDialog(Constantes.dialog_licencia_incorrecta);
            }
        }
    }

我究竟做错了什么?

4

1 回答 1

1

我见过人们犯的最常见的错误是忘记将他们的应用程序上传到 Android Market(它不必发布,但至少需要作为草稿上传)。

您还必须使用与您的 Market APK 相同的签名密钥进行测试。换句话说,您需要运行应用程序的发布版本,而不是调试版本(使用调试签名密钥)。

最后,如果这是一个现有应用程序,请确保您已增加应用程序的版本代码并请求 com.android.vending.CHECK_LICENSE 权限,包括本地 APK 和上传到市场的版本。(如果您忘记执行其中任何一项,许可证验证服务器将不知道响应您的应用程序的请求。)

于 2011-12-28T20:03:49.713 回答