我正在为付费应用程序做一个app
android许可证.在这个应用程序中,我给了64基本公钥&根据我的应用程序详细信息,盐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文件和存储作为谷歌播放的草案和测试与测试帐户,在谷歌播放作为测试帐户和我的设备中使用的相同帐户.每次我只测试Not Licensed with dialog时,我测试了很多次这个应用程序.问题是什么?
请帮我..
最佳答案 由于您的公钥,在Google Play中出现此错误会为从您的Google帐户发布的每个新应用生成不同的Base64编码的RSA公钥.在为您的应用程序创建apk之前检查该密钥.