【问题标题】:Can I receive GCM messages from two or more GCM SENDER_ID in my app?我可以在我的应用中接收来自两个或多个 GCM SENDER_ID 的 GCM 消息吗?
【发布时间】:2012-08-05 04:50:38
【问题描述】:

我需要在我的应用中接收来自不同发件人的推送通知。它会起作用吗?

【问题讨论】:

    标签: android push google-cloud-messaging


    【解决方案1】:

    您的问题的答案是是的

    根据 GCM 的官方文档,您的应用可以接收来自多个发件人的消息(限制为 100 个不同的发件人),并且您的意图代码应该与上述类似才能正常工作。

    Intent intent = new Intent(GCMConstants.INTENT_TO_GCM_REGISTRATION);
    intent.setPackage(GSF_PACKAGE);
    intent.putExtra(GCMConstants.EXTRA_APPLICATION_PENDING_INTENT,
            PendingIntent.getBroadcast(context, 0, new Intent(), 0));
    String senderIds = "968350041068,652183961211";
    intent.putExtra(GCMConstants.EXTRA_SENDER, senderIds);
    ontext.startService(intent);
    

    请随时在 GCM 页面查看有关 multiple senders 的官方主题。

    【讨论】:

    • 不确定这段代码到底在做什么?谁在处理服务,如果它们是字符串的一部分,服务将如何区分不同的 SENDER_ID
    【解决方案2】:

    既然你有 api key 和 sender id,那么它就可以工作了。您需要在您的服务器(或服务器)中使用 google 提供的 API 密钥向设备发送消息。

    【讨论】:

    • 我可以接收由不同 SENDER_ID 发送的消息吗?当然,我之前已经注册过接收来自它的消息。
    • 据我所知,sender id是针对应用程序的移动端的(实际上它被称为您在google apis控制台中创建的项目id)。当您想从服务器发送消息时,您需要使用相同的 API 密钥。它的工作原理是这样的,你在 google 的 api 控制台中创建一个应用程序,然后你会得到两个不同的密钥,项目 ID 和 api 密钥。您在移动应用程序中使用项目 ID,并在服务器应用程序中使用 api 密钥。一种用于接收消息(项目ID),一种用于发送消息。发送消息的发件人数量无关紧要。
    • 我知道 GCM 服务是如何工作的。我已经有项目了。我不仅有兴趣接收来自我的项目的通知,而且还有来自其他项目的通知。我的应用可以接收来自两个不同项目的消息吗?
    • 我不确定您的应用程序是否可以注册两个不同的项目(可能不是)以同时接收消息,但您不需要这样做。只需在服务器端运行相同的代码,但这次需要两个参数,每个项目一个。然后您将能够从两个不同的项目中获得相同的消息。您可能无法在移动应用程序中监听两个不同的项目。
    • 我开发了库,我需要向它发送推送。但可能是这样的情况,当程序员也想在他的应用程序中接收通知时。在这种情况下,应用程序需要在 GCM 服务中注册两个不同的项目。我假设你,这是不可能的。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多