2012-03-17 3 views
0

Я пишу чат-приложение для Android.Обнаружение службы чата Google XMPP возвращает пустой ответ

Я использую функцию сообщений о статусе общего доступа 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> 

Моего код (с помощью привкуса 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="[email protected]/androidC2AEBEEF" from="gmail.com" type="result"></iq> 

Что я делаю неправильно?

Заранее благодарен!

ответ

0

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

+1

PacketExtensionProvider не может проанализировать ваш xml, потому что у него нет пространства имен в START_TAG – user724861

+0

@Rahim: было бы здорово, если бы вы включили некоторый код с вашим ответом ... Для других, которые все еще искали ответ: http : //www.iteye.com/topic/901558 – TomTasche

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

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