Как получить список загружаемых приложений?
В моем приложении мне нужно знать, загружается ли конкретное приложение с Android Market или нет. Как мне достичь этой функциональности? Можно ли получить список всех загрузок, которые находятся в процессе? Рынок Android транслирует какие-либо намерения, которые можно поймать?
Примечание. Поскольку мое целевое приложение работает на устройствах Android 3.0+, у меня нет проблем с использованием класса DownloadManager (начиная с версии 2.3).
2 ответа
Я нашел API, который будет выполнять то, что вы хотите, но вам нужно иметь API 9 или выше, чтобы использовать его. Вы можете получить все загрузки, которые были запрошены для загрузки из менеджера загрузок, используя это:
DownloadManager manager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
Cursor c = manager.query(query);
Вы можете получить больше информации об этом здесь. Я не думаю, что есть какие-либо другие методы, которые дадут вам эту информацию на более низком уровне API.
Я не думаю, что есть какие-либо намерения приложений для Android Market, которые вы можете поймать (но я не уверен на 100%, потому что я не могу найти приложение Android Market нигде не проявляется).
Как я понимаю, через DownloadManager.query(DownloadManager.Query q)
В этом классе вы сможете найти все текущие загрузки и по источнику данных вы можете исключить все, которые не загружаются с рынка.