我可以在我的应用程序中从两个或更多的GCM SENDER_ID接收GCM消息吗?

4

我需要在我的应用中接收来自不同发送方的推送通知。这种方式可行吗?

2个回答

6
你的问题的答案是
根据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页面上有关多发件人的官方主题。


不确定这段代码到底在做什么?谁来处理服务,服务如何区分不同的SENDER_ID如果它们是字符串的一部分。 - Sudhanshu

0

既然您拥有API密钥和发送者ID,那么它就可以工作了。您需要在服务器(或多个服务器)上使用Google提供的API密钥向设备发送消息。


我能接收来自不同SENDER_ID发送的消息吗?当然,我之前已经注册接收来自该ID的消息。 - Nik
据我所知,发送者ID是针对应用程序的移动端(实际上它被称为您在Google API控制台中创建的项目ID)。当您想要从服务器发送消息时,您需要使用相同的API密钥。它的工作方式是这样的,您在Google的API控制台中创建一个应用程序,然后获得两个不同的密钥,即项目ID和API密钥。您在移动应用程序中使用项目ID,而在服务器应用程序中使用API密钥。一个用于接收消息(项目ID),另一个用于发送消息。无论有多少个发送者发送消息都没有关系。 - osayilgan
我知道GCM服务如何工作。我已经有项目了。我不仅对从我的项目中接收通知感兴趣,还对从另一个项目中接收通知感兴趣。我的应用程序能否从两个不同的项目接收消息? - Nik
我不确定你的应用程序是否可以同时注册两个不同的项目来接收消息(可能不行),但你并不需要这样做。只需在服务器端运行相同的代码,但这次使用两个参数,一个用于每个项目。然后,您将能够从两个不同的项目中获取相同的消息。可能您的移动应用程序无法同时监听两个不同的项目。 - osayilgan
我正在开发一个库,并需要向其发送推送通知。但有时候程序员也希望在自己的应用中接收到通知。在这种情况下,应用程序将需要在GCM服务中注册两个不同的项目。我认为像您一样,这是不可能的。感谢您的答复。 - Nik
是的,我也这么认为,看起来似乎不可能。 - osayilgan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接