我正在尝试将FCM功能集成到我的应用程序中。目前,我想显示一个按钮,当用户按下该按钮时,会生成一个上行消息并发送到Google的CCS。据我了解,这个上行消息将被Google CCS转换为XMPP报文。然后,它将被传递到具有我在创建上行消息时设置的ID的手机上。阅读谷歌的FCM文档后,我发现创建上行消息非常简单:
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
.setMessageId(Integer.toString(msgId.incrementAndGet()))
.addData("my_message", "Hello World")
.addData("my_action","SAY_HELLO")
.addData()//somewhere in here must be a way to set the senderId of the phone
// i am trying to send the message to ???
.build());
现在看上面的代码,我并没有看到任何使用XMPP创建此上行消息的方式。也没有任何XMPP stanza的创建。我的问题涉及这个XMPP stanza会被传递到哪里?一旦离开Google's CCS。我看到了一个类继承FirebaseMessagingService,名为onMessageReceived的方法。我理解,在这个方法中,XMPP stanza将被传递。或者,它将在我打算建立的Smack库连接上传递,该连接将有一个PacketListener。根据"Gronkking Android"的例子,Google's CCS XMPP stanza将被传递到这个packetlistener。我打算按照这个例子来接收这些即将到来的stanza,并生成所需的ack消息。
如果有人有任何想法或想法,请分享您的评论。
谢谢。