我正在尝试使用适用于Android的APK扩展文件扩展名。我已经将APK与扩展文件一起上传到服务器。如果应用程序以前发布过,我收到服务器的回复说NOT_LICENSED:我使用的代码是:
APKExpansionPolicy aep = new APKExpansionPolicy(mContext,
new AESObfuscator(getSALT(), mContext.getPackageName(), deviceId));
aep.resetPolicy();
LicenseChecker checker = new LicenseChecker(mContext, aep,
getPublicKey();
checker.checkAccess(new LicenseCheckerCallback() {
@Override
public void allow(int reason) {
@Override
public void dontAllow(int reason) {
try
{
switch (reason) {
case Policy.NOT_LICENSED:
mNotification.onDownloadStateChanged(IDownloaderClient.STATE_FAILED_UNLICENSED);
break;
case Policy.RETRY:
mNotification.onDownloadStateChanged(IDownloaderClient.STATE_FAILED_FETCHING_URL);
break;
}
} finally {
setServiceRunning(false);
}
}
@Override
public void applicationError(int errorCode) {
try {
mNotification.onDownloadStateChanged(IDownloaderClient.STATE_FAILED_FETCHING_URL);
} finally {
setServiceRunning(false);
}
}
});
因此,如果应用程序以前未发布,则调用 Allow 方法。如果应用程序以前已发布,现在不是调用 dontAllow 方法。
我试过:
- http://developer.android.com/guide/google/play/licensing/setting-up.html#test-response这里说,如果您在您的测试设备您可以设置特定的响应,我使用许可为回应,仍然得到NOT_LINCESED。
- 重置手机,清除谷歌Play商店缓存,应用程序数据。
- 更改不同组合的版本码号仍然不起作用。
编辑:如果其他人遇到此问题,我收到了来自谷歌支持团队的邮件
我们知道,新创建的用于测试应用内结算的帐户 和谷歌许可服务器 (LVL) 返回错误,并且正在处理 解决此问题。敬请关注。同时,您可以 使用 2012 年 8 月 1 日之前创建的任何帐户进行测试。 所以如果我使用主开发人员线程,他们的服务器似乎有问题 一切正常。
您是否尝试过使用也用于发布应用程序的发布密钥对应用程序进行签名?
与应用内结算一样,只有在使用正确的发布密钥对应用进行签名时,才能对此进行测试。否则,Google 无法验证请求是否来自正确的应用。