在我的应用程序中,我需要知道是否正在从 android 市场下载特定应用程序。如何实现此功能?是否可以获得所有正在进行的下载的列表?android 市场是否广播任何可以捕获的意图?
注意:由于我的目标应用程序是在 android 3.0+ 设备上,因此我对使用 DownloadManager 类(2.3 及更高版本)没有任何问题。
在我的应用程序中,我需要知道是否正在从 android 市场下载特定应用程序。如何实现此功能?是否可以获得所有正在进行的下载的列表?android 市场是否广播任何可以捕获的意图?
注意:由于我的目标应用程序是在 android 3.0+ 设备上,因此我对使用 DownloadManager 类(2.3 及更高版本)没有任何问题。
我找到了一个 API 可以完成你想要的,但你需要一个 9 或更高的 API 才能使用它。您可以使用以下命令从下载管理器获取所有已请求下载的下载:
DownloadManager manager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
Cursor c = manager.query(query);
您可以在此处获得更多信息。我认为没有任何其他方法可以在较低的 API 级别上为您提供此信息。
我不认为有任何你可以捕捉到的 android 市场应用程序意图(但我不能 100% 确定,因为我无法在任何地方找到 android 市场应用程序清单)。
正如我所看到的,通过DownloadManager.query(DownloadManager.Query q)
课程,您应该能够找到所有正在进行的下载,并且通过数据来源,您可以排除所有未从市场下载的内容。