7

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" />
sim
  • 249
  • 7
  • 17

3 Answers3

11

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" />
Erwan
  • 3,733
  • 30
  • 25
  • Does this work even if your application is not the one downloading and its some other application that is downloading ? – sim Sep 17 '13 at 19:33
  • I don't think so but I haven't tested. – Erwan Sep 26 '13 at 10:21
  • Is it depricated ? I cannot find this permission in official docs. Only INTERNET is needed. https://developer.android.com/reference/android/app/DownloadManager.html – Oleksandr Albul Dec 01 '17 at 11:16
1

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

Graham Borland
  • 60,055
  • 21
  • 138
  • 179
  • Yes, the package name is com.example.filedownload and the Receiver is Downloadlistener . I think the receiver is fine since If I declare the VOLUME_STATE_CHANGED intent and increase or decrease the volume button , my broadcast receiver is invoked. However for these 2 download manager intents it never enters the broad cast receiver – sim Apr 16 '13 at 16:18
1

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...