Android 状态侦听器在asmack中不工作

Android 状态侦听器在asmack中不工作,android,xmpp,smack,asmack,Android,Xmpp,Smack,Asmack,我正在使用asmack为Android开发一个聊天应用程序。连接正在建立,我也可以登录。我为IQ数据包添加了侦听器,这很好。我还添加了状态信息包的侦听器,下面是我的代码: PacketTypeFilter presenceFilter=new PacketTypeFilter(Presence.class); connection.addPacketListener(new PacketListener() { public void processPacket(Packet pack

我正在使用asmack为Android开发一个聊天应用程序。连接正在建立,我也可以登录。我为IQ数据包添加了侦听器,这很好。我还添加了状态信息包的侦听器,下面是我的代码:

PacketTypeFilter presenceFilter=new PacketTypeFilter(Presence.class);

connection.addPacketListener(new PacketListener() {
    public void processPacket(Packet packet) {
        Presence presence = (Presence)packet;

        Log.d("test1","Presence packet came :From:"+presence.getFrom()+",Packet ID:"+presence.getPacketID()+",Priority:"+presence.getPriority()+",To:"+presence.getTo()
                            +",Exn:"+presence.toXML());

        if (presence.getType() == Presence.Type.available) {
             Log.d("test1","User available");
        }
        else if (presence.getType() == Presence.Type.unavailable) {
                        Log.d("test1","User not available");
        }
    }
}, presenceFilter);
我的问题是,这个监听器永远不会被调用任何传入的状态信息包。它为即将离任的人工作。 我不能使用花名册来处理状态,因为我们的服务器正在使用一些智能路由服务来处理用户可用性。
我做错什么了吗?任何输入都会很有帮助。

如果您不能使用花名册,那么您是否确定首先会向该客户发送任何状态信息

客户端登录的用户是否在网络上其他用户的名册上

您是否测试过使用可以编辑原始xml的客户端显式地向客户端发送状态数据包