问题
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" />
回答1:
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" />
回答2:
Is your BroadcastReceiver really called com.example.filedownload.Downloadlistener
? You probably need to change it to match the actual name.
回答3:
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...
来源:https://stackoverflow.com/questions/16042000/app-not-receiving-android-intent-action-download-complete-intent