android - GCM 如何处理带有 BroadCastReceiver 的应用程序

标签 android broadcastreceiver google-cloud-messaging intentfilter

我很难理解关于如何 <intent-filter> 的基本概念处理 BroadCastReceiver 。使用下面的代码,我设置了一个 WakeFullBroadCastReciever 来处理任何下游消息。我的代码运行良好,我能够从 GCM 接收消息,但从概念上讲,<receiver> 是怎样的?能够识别要打开的应用程序。在流程图的任何地方,Google 都没有使用我的 packageName 来匹配 <category android:name> .我在概念上哪里出错了,gcm 如何为设备上具有 gcm 服务的两个应用程序处理这个问题。

    <receiver
        android:name=".GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.gcmexample" />
        </intent-filter>
    </receiver>  

最佳答案

这是一个闭源实现,所以我不能确定,但​​我假设您在服务器端使用的注册 token 包含 Google 系统建立连接所需的信息。换句话说,是云中的 GCM 服务或手机上的 Play 服务客户端将注册 token 及其关联的发件人 ID 与应用程序的包名称相关联。

关于android - GCM 如何处理带有 BroadCastReceiver 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31901242/

相关文章:

android - 广播接收器android的定时器

android - 以编程方式发送 SMS Android(未接收状态)

c# - 如何根据条件更改 ListView 中的 Textcoroul 或 TextCell 的背景颜色

android - 如何使对象的所有内容(计数器、变量)都为空?

java - 如何找到SD卡的位置

android - 如何在按下电源按钮时启动应用程序

ios - 使用 GCM 的 Swift 远程推送通知

android - 打开通知时出现空指针异常

android - GCM 中的注册应用程序问题

java - 如何根据 xml 解析的值在 listview 中动态更改颜色?