ไม่ได้รับแพ็กเก็ตในตัวฟังแพ็กเก็ตของฉัน

เรากำลังใช้ asmack (ปัจจุบันเป็นเวอร์ชัน 4.0.3) ฉันติดอยู่กับเวอร์ชันนั้นจนถึงเดือนกุมภาพันธ์ คำถามแรกเกี่ยวกับ SO และคำถามใหม่ที่จะตบ ดังนั้นโปรดอดทนกับฉันด้วย ฉันได้รับแพ็กเก็ตนี้พร้อม smack บน Android (แสดงในบันทึกการแก้ไขข้อบกพร่อง)

อาร์ซีวี (1):

< presence xmlns="jabber:client"
from="[email protected]/d67d0529-cdb3-4842-872b-8968ad635194" to="[email protected]/d67d0529-cdb3-4842-872b-8968ad635194">
< x xmlns="http://jabber.org/protocol/muc#user">
< item affiliation="member"
 role="participant"
 name="my name"
 type="web"
 mute="false">
< /item>
< status xmlns="http://jabber.org/protocol/muc" code="301"></status>
< status xmlns="http://jabber.org/protocol/muc" code="110">< /status>
< /x>
< /presence>

ตัวกรองแพ็คเก็ตของฉัน

   PacketFilter presenceFilter = new AndFilter(new FromMatchesFilter(roomId + "@chat." + myUrl, true), new PacketTypeFilter(Presence.class));

    connectionXmpp.addPacketListener(myPacketListener, presenceFilter);

ผู้ฟังแพ็คเก็ตของฉัน

 private class myPacketListener implements PacketListener{
        @Override
        public void processPacket(Packet packet) throws NotConnectedException {
        Log.i(TAG," Packet to xml : "+packet.toXML());
    }
}

ฉันจะประมวลผล xml นั้นด้วยเนื้อหาทั้งหมดได้อย่างไร ฉันได้รับรหัสสถานะสองรหัส ฉันต้องแยกวิเคราะห์ทั้งสองรหัส ฉันจะประมวลผลข้อมูลทั้งหมดในแท็ก "x" ได้อย่างไร ตัวฟังแพ็กเก็ตของฉันส่งคืนเอาต์พุตจำนวนมาก แต่ไม่มีรหัสสถานะ 301 หรือคุณสมบัติปิดเสียง

ขอบคุณทุกคน


person samory    schedule 17.10.2015    source แหล่งที่มา


คำตอบ (1)


ลองเพิ่มโค้ดด้านล่างในวิธี processPacket เพื่อรับรายละเอียด packet

 @Override
    public void processPacket(Packet packet) throws NotConnectedException   
 {
    Log.i(TAG," Packet to xml : "+packet.toXML());
   //new code start
       Message message = (Message) packet;

            if (message.getType() == Message.Type.error) {
                return;
            }
            if (message.getBody() != null) {
 Log.i("Message==>",message.getBody());
 Log.i("Message From",message.getFrom())
            }
   //new code end
}
person pRaNaY    schedule 25.11.2015