收听来自其他应用程序的下载

Posted

技术标签:

【中文标题】收听来自其他应用程序的下载【英文标题】:Listen for downloads from other apps 【发布时间】:2016-08-23 10:38:21 【问题描述】:

我的应用程序应该监听下载(从任何应用程序,例如浏览器),然后根据某些文件属性,通过通知提供一些操作。当应用程序当前未在前台运行时,这也应该有效,因此我使用静态定义的接收器(在 androidManifest.xml 中)来执行此操作。 但是,应用程序永远不会收到“下载完成”的意图。这是我的代码:

下载接收器:

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=trueandroid:enabled=true,但都没有帮助。我还尝试在意图过滤器中使用常量名称DownloadManager.DOWNLOAD_COMPLETE,但这对我也没有帮助。还有其他解决方案吗?

【问题讨论】:

【参考方案1】:

经过深入研究,出于隐私原因,我发现这是not possible。有one possibility,虽然实现起来不太容易(涉及到使用File Observer)。

【讨论】:

以上是关于收听来自其他应用程序的下载的主要内容,如果未能解决你的问题,请参考以下文章

在锁定屏幕模式和访问其他应用程序时录制语音和说话和收听实时聊天

app与手机其他软件交互测试

PHP:收听系统日志消息

从应用程序的其他层发送 STOMP 消息

如何在实时代码应用程序中的Mac OS X上收听特定的文本字符串

通过私有 API 收听 iMessage 或 SMS