2

こんにちは、私はこれらのコード行を使用して、スマックを使用して会話のリストを取得しています

@Override
protected Void doInBackground(String... strings) {

    final ArrayList<UsersData> users 
        = UsersManager.getInstance().getUsers();

    int count = 0;
    while(count < users.size()) {

        try {
            Thread.sleep(500);
            final String jid 
                = users.get(count).getUserJID();

            IQ iq = new IQ() {

                @Override
                public String getChildElementXML() {
                    String list = "<list xmlns='urn:xmpp:archive'"+
                            "with='"+jid+"'>"+
                            "<set xmlns='http://jabber.org/protocol/rsm'>"+
                            "<max>30</max></set></list>";
                    return list;
                }
            };

            iq.setType(IQ.Type.GET);
            iq.setPacketID(jid+System.currentTimeMillis());

            service.getXmppConnection().sendPacket(iq);
            Log.v("XmppAsyncHistory", "IQ List sent!");

        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        count++;
    }

    return null;
}

iq プロバイダーを追加しました。

        provider.addIQProvider("list", "urn:xmpp:archive", new ListIQProvider());

そして、私は返信のためにこのスタンザを取得します。

D/SMACK(11130): 10:34:30 PM RCV  (1096010080): 
<iq type="result" 
id="24@suitmedia1375112070174" 
to="17@suitmedia/Smack"><list xmlns="urn:xmpp:archive">
chat with="24@suitmedia" 
 start="2013-07-25T09:57:04.121Z"/>
<chat with="24@suitmedia"  
 start="2013-07-25T11:08:28.997Z"/>
<chat with="24@suitmedia" 
 start="2013-07-29T09:29:18.295Z"/>
<chat with="24@suitmedia" 
 start="2013-07-29T07:47:29.841Z"/>
<set  xmlns="http://jabber.org/protocol/rsm">
<first index="0">184</first><last>216</last>
<count>4</count></set></list></iq>

ご覧のとおり、最新の会話ではなく、それぞれ 25/07 から 29/07 までの最も古い会話が返されます。

私が聞きたいのは、これらのタグの意味は何ですか? 184216 最近の時間で会話リストの順序を取得するにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

0

「list」要素に属性「end」を現在の時刻で追加する必要があります。XML は次のようになります。

<iq type='get' xmlns='jabber:client'><list xmlns='urn:xmpp:archive' end='2014-05-28T08:48:56+08:00' with='somebody@somesite'><set xmlns='http://jabber.org/protocol/rsm'><max>10</max><before/></set></list></iq>
于 2014-05-28T00:57:14.547 に答える