Вопрос

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