Android:下载管理器

时间:2011-05-12 07:41:23

标签: android google-play

我想实现一个解决方案,我想从Android Market App中捕获android.intent.action.DOWNLOAD_COMPLETED意图,即在下载应用程序之后。 Android Market应用程序使用默认的下载管理器和下载管理器完成下载发送此类意图,但是我无法捕获它,我跟着this tutorial并请参阅this有关市场应用程序如何使用下载管理器的更多详细信息,有关下载管理器的更多信息,请参阅this。请建议我一种方法来捕捉这些意图。

修改 这就是我用于我的广播接收器

<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER">
</uses-permission>


<application android:icon="@drawable/icon" android:label="@string/app_name">
    <receiver 
        android:name=".DownloadReceiver"
        android:permission="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS"
        android:exported="true">

         <intent-filter>
            <action
                android:name="android.intent.action.DOWNLOAD_COMPLETED">
            </action>
         </intent-filter>
     </receiver>
  </application>

3 个答案:

答案 0 :(得分:8)

除了意图过滤器中的操作名称之外,您已经完成了所有操作。请注意DOWNLOAD_COMPLETE而不是DOWNLOAD_COMPLETED

    <receiver 
        android:name=".DownloadReceiver"
        android:exported="true"
        android:icon="@drawable/download_icon" >
        <intent-filter>
            <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
         </intent-filter>
     </receiver>        

这对我有用。您无需在代码中注册接收器,即使您的应用未运行,也会收听。

答案 1 :(得分:1)

首先注册接收器

registerReceiver(onComplete, 
new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

设置广播接收器以捕获事件。

BroadcastReceiver onComplete=new BroadcastReceiver() {
        public void onReceive(Context ctxt, Intent intent) {
            // run your action here
        }
    };

答案 2 :(得分:0)

声明您的接收者的优先级低于市场应用程序注册的优先级。尝试使用 Intent Filter.setPriority()或声明XML here的优先级