Abh*_*hek 5 android xmpp smack asmack
我正在使用asmack开发Android的聊天应用程序.连接已经建立,我也可以登录.我添加了IQ数据包的监听器,这工作正常.我也为Presence数据包添加了监听器,这是我的代码:
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);
Run Code Online (Sandbox Code Playgroud)
我的问题是,这个监听器永远不会被调用任何传入的Presence数据包.它适用于外向的.我无法使用Roster来处理状态,因为我们的服务器正在使用一些智能路由服务来处理用户可用性.我在这里做错了吗?任何输入都会有所帮助.
小智 -2
如果您无法使用花名册,那么您确定首先会将任何状态发送给该客户吗?
客户端登录的用户是否在网络上其他用户的名册上?
您是否测试过使用可以编辑原始 xml 的客户端显式发送存在数据包到客户端?
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |