发送仅限于动态应用程序列表的广播

Posted

技术标签:

【中文标题】发送仅限于动态应用程序列表的广播【英文标题】:send broadcast restricted to dynamic list of applications 【发布时间】:2014-09-20 16:10:33 【问题描述】:

我的应用程序定义了设备上安装的其他应用程序可以注册到的事件(就像其他应用程序可以注册到 google play 服务位置更新和活动识别事件一样)。

google play 服务进程通过接收应用提供的PendingIntent 通知此类事件。

我更喜欢通过sending a broadcast restricted by permissions 来做,我认为这是有充分理由的:PendingIntent 不能以持久的方式保存,所以每次我的应用程序会大喊大叫时,注册到我的事件的应用程序会必须重新注册我的活动..

问题:in the link I provided,您可以看到如何通过在双方(广播发送应用程序和接收应用程序)中声明的自定义权限来限制广播,但是如果我需要从发送方动态决定怎么办?我从服务器获取的列表,允许接收广播的应用程序有哪些?

我在网上找不到任何参考或示例。

我想这应该是有可能的,因为谷歌播放服务似乎正在使用这种方法将 GCM 推送通知仅通知给相关的接收者......

请帮助我了解我该怎么做。

【问题讨论】:

为什么这个问题值得反对? 不是我的反对意见,但我猜原因是“要重现问题,必须有代码。” 【参考方案1】:

但是,如果我需要从我从服务器获取的列表中动态地从发送方决定,那么允许接收广播的应用程序是什么?我在网上没有找到任何参考或示例。

使用显式Intent,您已在其中设置了要“广播”到的特定BroadcastReceiverComponentName。对于每个“允许接收广播”的应用,您将需要“广播”一次这样一个明确的 Intent

【讨论】:

完美!我会这样做的!

以上是关于发送仅限于动态应用程序列表的广播的主要内容,如果未能解决你的问题,请参考以下文章

广播机制之动态注册和静态注册

如何在服务之间广播消息?

如何使用 XMPP 进行广播?

Android本地广播的使用

Spark 广播变量,只有一个任务使用它

广播的注册发送和接收过程