and*_*per 17 android download expansion google-play
我需要使用新的谷歌播放(或市场)扩展库,我很难用它.我想知道是否有其他人正在使用它并注意到我能看到的相同问题,所以如果你能帮忙解决它们我会很高兴:
1.有时我不会将重要事件(例如错误)返回到下载程序活动.
2.it在某些设备上根本不起作用,比如xoom.我想我已经修好了: 在平板电脑上下载扩展文件
3.对于相同的设备,可以下载文件,另一个可以始终得到连接错误.对于某些设备,它永远不会永远无法下载(即使是具有google-play应用程序的非root设备).
4.下载完成后,文件可能已损坏,因此我需要使用CRC校验并重新下载所有内容.
5.通知有时会在按下时打开下载器活动的多个实例.此外,我不明白为什么他们让通知留在以防活动仍然显示.
6.当发生错误并稍后处理时,它不会等待用户告诉它恢复.我不确定它会在哪些情况下发生,但它确实很奇怪且不可预测.
7.在离开下载程序活动时,我得到一个泄漏服务的例外.
8.对应用程序进行模糊处理,因为通过库完成的SQL操作而崩溃.怎么样,为什么呢?编辑:这是因为谷歌决定在SQL部分(在"DownloadsDB.java"文件中)进行一些反思操作.为了解决这个问题,我试图将proguard设置为忽略整个库(无论如何都是开源),但它没有用,所以我所做的就是给自己想要的类,所以我是将"DownloadsDB.class.getDeclaredClasses()"替换为"new Class [] {MetadataColumns.class,DownloadColumns.class};" .
我只是不明白为什么谷歌只是发布一个简单的API发送意图到市场下载文件,检查是否正常,或提供一个不那么复杂的库.由于复杂性,很难找到并修复它们的bug.
我的问题是:有没有其他人尝试过这个库,还有其他人成功地使用它而没有任何问题吗?如果是的话,请发布解决方案......
编辑:似乎谷歌已经更新了它的库(到版本2).
他们声称接下来的变化:
我现在已经测试过,似乎它们几乎就在那里.
我发现的唯一错误是,如果我更新扩展文件(以及APK和文件大小和CRC),下载开始但它没有删除旧的扩展文件.
此外,通知显示当前时间,而不是与下载有关的任何其他内容.
现在,由于我只有一个扩展,每次从服务获得STATE_COMPLETED状态时,我都会进行下一次检查.我希望它没有任何其他问题:
private void deleteOldExpansionFile()
{
int fileVersion = 0;
final int versionCode = App.getAppVersionCode(DownloaderActivity.this);
fileVersion = versionCode;
final String fileName = Helpers.getExpansionAPKFileName(this, true, fileVersion); //get the expansion file name based on the build version of the app.
final File newFile = new File(Helpers.generateSaveFileName(this, fileName));
final File[] listFiles = newFile.getParentFile().listFiles();
for (final File file:listFiles)
{
final String name = file.getName();
if (name.startsWith(fileName))
continue;
file.delete();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
。你好 !对于CRC Check Fail,我也遇到过这个问题。为我解决这个问题的方法是使用 7zip 以 zip 格式存档我的扩展文件,根本不压缩(存储)。
像这样: http: //floy.fr/perso/floy/expfiles/crc.PNG
现在 CRC 对我来说就像一个魅力!
我同意你的观点..这个库使用起来非常痛苦..