我使用 Smack API 来编写我的 Google talk 客户端。现在我需要处理对此的添加请求。
我将 SubscriptionMode 设置为手动,现在我必须注册存在数据包的侦听器,但我不知道如何!
任何人都可以帮忙吗?
我还没有尝试过,但我想下面的应该可行。如果使用手动模式,则应注册一个 PacketListener 来侦听具有以下类型的存在数据包:Presence.Type.subscribe
.
首先确定名单:
Roster roster = connection.getRoster();
roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
然后向上述连接添加数据包侦听器,例如:
connection.addPacketListener(new SubscriptionListener(), new PacketFilter(){
public boolean accept(Packet packet) {
if(packet instanceof Presence)
if(((Presence)packet).getType().equals(Presence.Type.subscribe))
return true;
return false;
}});
上面的代码只对所有请求返回 true,但您可以自定义它,即根据用户 GUI 输入将其设置为 true 或 false。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)