来自Firebase CCS的ACK响应未达到Smack Library的Stanza Listener

时间:2016-09-15 13:11:25

标签: android smack firebase-cloud-messaging

当我在Android应用中使用Smack Library创建消息Stanza时,我仍然没有找到答案,说明为什么我没有从Firebase CCS收到ACK响应。之前我能够得到ACK响应,但由于我的机器崩溃,我所使用的代码丢失了。

我的连接工作正常,因为我收到了我在onMessageReceive方法上的FirebaseMessageService类上发送给自己的消息。

以下是我使用Smack API初始化Stanza Listener的方法:

filter = new StanzaFilter() {
        @Override
        public boolean accept(Stanza stanza) {
            // Accept messages from GCM CCS.
            if (stanza.hasExtension(GCM_ELEMENT_NAME, GCM_NAMESPACE)) {
                return true;
            }
            // Reject messages that are not from GCM CCS.
            return false;
        }
    };

    stanza_listen = new StanzaListener() {
        @Override
        public void processPacket(Stanza packet) throws SmackException.NotConnectedException {

            String string = ""+packet.getExtension(GCM_NAMESPACE);
            String rayString = packet.getExtension(GCM_NAMESPACE).toXML().toString();


            Log.d("extension","here you go; "+string+" xmlpacket:\n\n"+rayString+" other extension:\n\n"+packet.getExtension(GCM_ELEMENT_NAME,GCM_NAMESPACE));

            JSONObject jason = null;
            try {
                jason = new JSONObject(string);
                Log.d("myJson","here is JSon: "+jason);
            } catch (JSONException e) {
                Log.d("couldnt","couldnt get extension: "+e);
                e.printStackTrace();
            }
        }
    };

当我在我的日志上尝试Log.d时,调用packet.getExtension(GCM_NAMESPACE)我得到的内容如下所示 org.smack.DefaultExtensionElement@4215b 日志显示如下的空扩展名:

<gcm xmlns:google:mobile:data>
There's no JSON payload. Its empty 
</gcm>

我打电话给 other_connection.addAsyncStanzaListener(stanza_listen,过滤器)开始 收听来自Firebase CCS的传入消息。

任何建议都将受到赞赏。

感谢

0 个答案:

没有答案