Отправка и получение пакетов IQ ASMACK/SMACK Android XMPP

Я был бы очень признателен, если бы кто-нибудь помог мне, как получать пакеты iq с помощью ASMACK, я отправляю необработанные пакеты iq, но не могу их получить,

Я зарегистрировал пакеты iq программно перед подключением, но до сих пор не получил ответа,

     pm.addIQProvider("vCard", "vcard-temp", new VCardProvider());

  final IQ iq = new IQ() {
          public String getChildElementXML() {
            return "<iq from='[email protected]' id='v1'      to='[email protected]' type='get'><vCard xmlns='vcard-temp'/></iq>";
          }
        };

    iq.setType(IQ.Type.GET);
        connection.sendPacket(iq);
        connection.addPacketListener(new MyPacketListener(),new       PacketTypeFilter(IQ.class));    

person Programmer    schedule 15.09.2011    source источник
comment
не нашел ни одного конструктора без параметров. org.igniterealtime.smack:smack-android-extensions:4.2.2 я не уверен насчет asmack   -  person Killer    schedule 01.02.2018


Ответы (2)


Прежде всего, попробуйте настроить прослушиватель пакетов перед отправкой пакета. Это асинхронный протокол, и вполне возможно, что ответ возвращается до того, как ваш прослушиватель настроен на его получение.

Затем попробуйте установить -DsmackDebugEnabled=true, чтобы убедиться, что на вашу отправку пришел фактический ответ.

person Robin    schedule 15.09.2011

Вы можете реализовать метод Packet Listner, метод processPacket (пакетный пакет) предоставит вам входящие пакеты. Вот поток стека, который объясняет ту же проблему Преобразование пакетов в XML с помощью прослушивателя пакетов выводит элементы, допускающие значение NULL

person Jashan PJ    schedule 13.08.2013