4

我正在使用 Google Play License API 测试我的应用程序。该应用程序成功绑定到许可服务,但回调给出错误 6。我检查了 LicenseValidator 中的错误代码,这不是那里列出的错误代码之一。

有谁知道错误6是什么意思?

public class MyActivity extends FragmentActivity
{

    private static final String BASE64_PUBLIC_KEY = "ZZZZ";

    private static final byte[] SALT = new byte[] {
        XXXX
    };

    private LicenseCheckerCallback mLicenseCheckerCallback;
    private LicenseChecker mChecker;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);

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

        // Library calls this when it's done.
        mLicenseCheckerCallback = new YAHLicenseCheckerCallback();

        // Construct the LicenseChecker with a policy, obfuscator and public key
        mChecker = new LicenseChecker(this, 
                new ServerManagedPolicy(this,
                new AESObfuscator(SALT, getPackageName(), deviceId)),
                BASE64_PUBLIC_KEY);
        mChecker.checkAccess(mLicenseCheckerCallback);
    }

    private class YAHLicenseCheckerCallback implements LicenseCheckerCallback {
        public void allow(int policyReason) {
            Log.d(tag,"License - allowed");

            if (isFinishing()) {
                // Don't do anything if Activity is finishing.
                return;
            }
            // Should allow user access.

        }

        public void dontAllow(int policyReason) {
            Log.d(tag,"License - not allowed");

            if (isFinishing()) {
                // Don't do anything UI if Activity is finishing.
                return;
            }

            // Should not allow access. In most cases, the app should assume
            // the user has access unless it encounters this. If it does,
            // the app should inform the user of their unlicensed ways
            // and then either shut down the app or limit the user to a
            // restricted set of features.

        }

        public void applicationError(int errorCode) {

            Log.d(tag,"License - application error code "+errorCode);

            if (isFinishing()) {
                // Don't update UI if Activity is finishing.
                return;
            }
            // This is a polite way of saying the developer made a mistake
            // while setting up or calling the license checker library.
            // Please examine the error code and fix the error.

        }
    }

    @Override
    protected void onDestroy()
    {
    mChecker.onDestroy();
    super.onDestroy();
    }
}
4

1 回答 1

7

好的,我已经解决了。错误 6 不是来自 LicenceValidator,而是来自 LicenseChecker,表示缺少权限。我没有给应用程序 com.android.vending.CHECK_LICENSE 权限。当我这样做时,它开始工作。

感谢您的关注,我希望这可以帮助任何犯同样错误的人。

于 2013-04-05T13:39:36.897 回答