android – 已下载扩展文件,但不存在

前端之家收集整理的这篇文章主要介绍了android – 已下载扩展文件,但不存在前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我已经复制了 Android的扩展包示例并使其基于 the guide provided by google运行.我已成功通过存储本地.obb文件使其工作但我无法让它与下载.obb文件一起工作.状态更改为IDownloaderClient.STATE_COMPLETED但没有找到它的文件.

我经历过的步骤:

>使样本运行(使用BASE64_PUBLIC_KEY更新,新包名称,版本号)
>使用本地.obb文件成功测试.
>制作apk并上传到与扩展文件一起播放.
>安装签名的apk并运行应用程序. < - 这里说下载很成功,但在下载过程中没有给出任何进展更新.
请帮助获取下载的扩展文件.

编辑:在第4步,我现在得到下载失败,因为无法找到资源.

编辑2:所以在调试之后,我看到状态变为无需下载,但无法验证文件,因为它丢失了.所以出于某种原因,它认为该文件已被下载.

编辑3:所以在DownloaderService.class中我们有一个run()方法,它使getExpansionURLCount()返回0.文档说明:如果当前会话中没有LVL提取,这将返回零.经过多次挖掘后,我发现我在processServerResponse()中从Google获得的响应的响应代码为256,没有FILE_URL的键.那么原因是什么?

解决方法

我知道这个答案没有解决潜在的问题,但我认为这个解释可能会帮助像我一样被下载程序库的响应混淆的其他人:

当Google Licensing服务器通知它没有与该应用关联的扩展文件时,下载器服务(有点不直观地)将STATE_COMPLETED传递给onDownloadStateChanged().由于它必须对服务器进行异步调用才能找到它,因此它不能直接从startDownloadServiceIfrequired()返回NO_DOWNLOAD_required.它必须启动服务以咨询服务器.

但它似乎只会在您安装应用程序后第一次调用下载服务时执行此操作 – 之后,它会将许可服务器的响应缓存在本地数据库中,并且将来对startDownloadServiceIfrequired()的调用将立即返回NO_DOWNLOAD_required.

响应代码256对应于Policy.LICENSED,这意味着包名称和公钥有效,但缺少任何FILE_URL表明Google Play认为该应用没有扩展文件.

就我而言,我的扩展文件在应用程序处于草稿时起作用,但一旦发布,它就会从商店中消失.我无法确定原因.

猜你在找的Android相关文章