我的应用应该监听下载(来自任何应用,例如浏览器),然后根据某些文件属性,通过通知提供一些操作。当应用程序当前未在前台运行时,这也应该有效,因此我使用静态定义的接收器(在AndroidManifest.xml中)。 但是,该应用程序永远不会收到"下载完成"意图。这是我的代码:
DownloadReceiver:
public class DownloadReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// This notification is just for testing purposes
// to see if the DownloadReceiver works
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_check)
.setContentTitle("Your download has finished.")
.setContentText("Download finished");
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}
}
的AndroidManifest.xml:
<receiver
android:name=".DownloadReceiver">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
</intent-filter>
</receiver>
根据互联网上的一些解决方案,我添加了android:exported=true
和android:enabled=true
,但都没有帮助。我也尝试在intent过滤器中使用常量名DownloadManager.DOWNLOAD_COMPLETE
,但这对我没有帮助。还有其他解决方案吗?
答案 0 :(得分:0)
经过深入研究后,我发现出于隐私原因这是not possible。有one possibility,虽然它实现起来并不容易(它涉及使用File Observer)。