我现在正在尝试将我的应用程序发布 3 个小时,但我无法让许可证检查正常工作。
在我的onCreate
方法中,我得到了这个代码:
// Try to use more data here. ANDROID_ID is a single point of attack.
String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
String pckName = getPackageName();
// Library calls this when it's done.
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
// Construct the LicenseChecker with a policy.
mChecker = new LicenseChecker(this, new ServerManagedPolicy(this, new AESObfuscator(
SALT, pckName, deviceId)), BASE64_PUBLIC_KEY);
mChecker.checkAccess(mLicenseCheckerCallback);
回调看起来像这样
private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
public void allow(int policyReason) {
if (isFinishing())
return; // Don't update UI if Activity is finishing.
// Should allow user access.
Main.isLicensed = true;
}
public void dontAllow(int policyReason) {
if (isFinishing())
return; // Don't update UI if Activity is finishing.
Main.isLicensed = false;
}
public void applicationError(int errorCode) {
if (isFinishing())
return; // Don't update UI if Activity is finishing.
Main.isLicensed = false;
}
}
只有 dontAllow 方法被调用。响应码是 291。
在 logcat 中,我收到“联系许可服务器时出错”。
该应用程序已上传到开发人员控制台。
公钥是正确复制的(没有任何空格)。
手机(带有 Android 4.0.4 Stock 的三星 Galaxy S2)可以上网
有任何想法吗?