我正在为付费应用程序做一个应用程序android许可证。在这个应用程序中,我根据我的应用程序详细信息给了base 64公钥和salt 20个随机数。我的代码如下:
初始化后的变量如下:
private static final String BASE64_PUBLIC_KEY = "xxxxxx";
private static final byte[] SALT = new byte[] {xxxxxxxxxxxxxxxx};
private LicenseChecker mChecker;
private LicenseCheckerCallback mLicenseCheckerCallback;在oncreate()中这样做:
String deviceId = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
mChecker = new LicenseChecker(this, (Policy) new ServerManagedPolicy(this,
new AESObfuscator(SALT, getPackageName(), deviceId)),
BASE64_PUBLIC_KEY);
mChecker.checkAccess(mLicenseCheckerCallback);我的许可证检查器回调函数如下所示:
private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
@Override
public void allow(int result) {
if (isFinishing()) {
return;
}
}
@Override
public void applicationError(int errorCode) {
if (isFinishing()) {
return;
}
}
@SuppressWarnings("deprecation")
@Override
public void dontAllow(int result) {
if (isFinishing()) {
return;
}
showDialog(0);
}
}由此,我导出了apk文件,并将其作为草稿存储在google play中,并使用测试帐户进行测试,测试帐户在google play中作为测试帐户提供,在我的设备中也使用相同的帐户。我测试了很多次这个应用程序,每次它只显示对话没有授权。有什么问题吗?请帮帮我..
发布于 2013-03-26 17:10:41
此错误是由于您的公钥导致的,在google play中为您的google帐户发布的每个新应用程序生成不同的Base64-encoded RSA public key。在为应用程序创建apk之前,请检查该密钥。
https://stackoverflow.com/questions/15584197
复制相似问题