2016-08-03 4 views
0

my addAsyncStanzaListner вызывается, когда получено сообщение ack из служб Cloud Cloud Firebase. Мне нужно получить эти сообщения в соответствии с документами. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу достичь пары «message_type» «ключ»/«значение» внутри объекта JSON, которая поступает в полученную строфу сообщения. Не могли бы вы помочь мне в доступе к этой важной ценности/паре. Я использую Smack Library 4.1. Я после этого после ответа на этой установке, но почему-то он не работает: GCM XMPP Server using Smack 4.1.0Доступ к объекту JSON внутри Message Stanza с использованием библиотеки Smack

Вот как код выглядит как:

other_connection.addAsyncStanzaListener(new StanzaListener() { 
@Override 
public void processPacket(Stanza packet) throws SmackException.NotConnectedException { 
//how should i convert this stanza into a message stanza 
//I have tried Message message = (Message)packet; IT DOESNT WORK 
//I have tried getting the extension with the GCM Namespace. It doesnt 
//return a json string  
+0

Поскольку вы используете привкусом библиотеку, посмотреть на этом примере, который использует привкусом 4,1. https://github.com/googlesamples/friendlyping/blob/master/server/Java/src/main/java/com/gcm/samples/friendlyping/SmackCcsClient.java#L111 –

ответ

0

В своем коде вы просто вернуть Stanza как объект Java.

У Stanza есть способ вывода XML.

Вы можете использовать этот метод для получения JSON, если вам нужно, просто добавьте некоторые пользовательские функции.

Following this example

ваш код может выглядеть следующим образом:

@Override 
public void processPacket(Stanza packet) throws SmackException.NotConnectedException { 
    JSONObject jsonObj = XML.toJSONObject(packet.toXML()); 
    String json = jsonObj.toString(); 
//foo 

 Смежные вопросы

  • Нет связанных вопросов^_^