мне нужно использовать новую библиотеку расширения google-play (или market), и мне трудно с этим .интересно, использует ли его кто-нибудь еще и замечает ли те же проблемы, что и я, поэтому я был бы очень рад, если бы вы помогли их исправить:
1. иногда я не получаю важные события (например, ошибки ) вернуться к активности загрузчика .
2. он вообще не работает на некоторых устройствах, таких как xoom. я думаю, что исправил это: Загрузить файлы расширения на планшет
3.Даже для одинаковых устройств, одно может скачать файл, а другое всегда может получить ошибку подключения. для некоторых устройств он никогда не сможет загрузиться (даже устройства без рута, на которых установлено приложение google-play).
4.После завершения загрузки файл может быть поврежден, поэтому мне нужно использовать проверку CRC и повторно загрузить все заново.
5.notification иногда открывает несколько экземпляров активности загрузчика при нажатии на нее. Кроме того, я не понимаю, почему они оставляют уведомление, если активность все еще отображается.
6. Когда ошибка возникает и позже обрабатывается, она не ждет, пока пользователь скажет ей возобновить работу. я не уверен, в каких случаях это происходит, но это действительно странно и непредсказуемо.
7. После выхода из активности загрузчика я получаю исключение из-за утечки службы.
8. При обфускации приложения происходит сбой из-за операций SQL, выполняемых через библиотеку. как это и почему? РЕДАКТИРОВАТЬ: это потому, что Google решил сделать некоторые операции отражения в части SQL (в файле DownloadsDB.java).чтобы исправить это, я попытался настроить proguard так, чтобы он игнорировал всю библиотеку (в любом случае, это открытый исходный код), но это не сработало, поэтому я дал классы, которые он хочет, сам, поэтому я заменил «DownloadsDB.class.getDeclaredClasses ()» на «новый класс [] {MetadataColumns.class, DownloadColumns.class};» .
Я просто не понимаю, почему Google не может просто опубликовать простой API, чтобы отправить на рынок намерение загрузить файл и проверить, все ли в порядке, или предоставить гораздо менее сложную библиотеку. из-за сложности очень трудно найти и исправить их ошибки.
У меня такой вопрос: пробовал ли кто-нибудь еще эту библиотеку, и кто-то еще успешно использовал ее без каких-либо проблем? если это так, пожалуйста, опубликуйте решение...
РЕДАКТИРОВАТЬ: кажется, Google обновил свою библиотеку (до версии 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();
}
}