I am writing a simple app that would get notified when any download via the Download manager is completed on the android device. I have created a Broadcast Receiver for the same and set the intent filter as below in my Manifest file. However my broadcast receiver does not get invoked when download is completed . Is there some other permissions that I need to set as well so that my app receives the DOWNLOAD_COMPLETE intent sent by the Download Manager ? Please note : my app needs to listen to any download that is completed via the Download Manager

<receiver
    android:name="com.example.filedownload.Downloadlistener" >
       <intent-filter>
        <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
        <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED" />
       </intent-filter>
</receiver>

Following are the permissions used :

<uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
有帮助吗?

解决方案

I did finally manage to fix this issue by adding the following permission to my manifest:

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

其他提示

Is your BroadcastReceiver really called com.example.filedownload.Downloadlistener? You probably need to change it to match the actual name.

Late to the party, but got a chance to look into the source code for the download manager, and it seems that the Download Complete broadcast is targeted at the app that initiated the download, so it seems you can't catch other apps' downloads...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top