Обнаружение службы чата Google XMPP возвращает пустой ответ - PullRequest
0 голосов
/ 17 марта 2012

Я пишу чат-приложение для Android.

Я использую функцию общих сообщений о состоянии Google Talk. http://code.google.com/apis/talk/jep_extensions/shared_status.html

Я должен отправить эту строфу

<iq type='get' to='gmail.com'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

Мой код (с использованием SMACK API):

    final IQ iq = new IQ() {
        public String getChildElementXML() { 
            return "<query xmlns='http://jabber.org/protocol/disco#info'/>"; 
        }
    };

    iq.setTo("gmail.com");
    iq.setType(IQ.Type.GET);

    Log.w("IQ", "Prepared packet " + iq.toXML());
    Log.w("IQ", "Sending 1");
    connection.sendPacket(iq);

Я ожидаю получить следующий пакет:

<iq xmlns='jabber:client' from='gmail.com' type='result'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity category='server' type='im' name='Google Talk'/>
    <feature var='http://jabber.org/protocol/disco#info'/>
    <feature var='google:jingleinfo'/>
    <feature var='google:roster'/>
    <feature var='google:nosave'/>
    <feature var='google:setting'/>
    <feature var='google:shared-status'/>
    <feature var='http://jabber.org/protocol/archive#otr'/>
    <feature var='google:mail:notify'/>
    <feature var='http://jabber.org/protocol/archive#save'/>
    <feature var='http://jabber.org/protocol/rosterx'/>
  </query>
</iq>

Мой слушатель получает пакет:

public void processPacket(Packet    
    //IQ iq = (IQ) packet;
    Log.w("IQ", "Packet received " + packet.toXML());
}

При получении я получаю следующий журнал:

03-17 08:05:43.129: W/IQ(1050): Packet received <iq id="fYhYL-4" to="abdurrahim.ceg@gmail.com/androidC2AEBEEF" from="gmail.com" type="result"></iq>

Что я делаю не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 20 марта 2012

Не было проблем с отправкой пакетов.Я должен написать IQProvider или PacketExtensionProvider для анализа входящих пакетов, так как smack не понимает эти пользовательские пакеты.

...