我使用的是smack 3.1.0,当我添加一个花名册时,我无法获得订阅“两者都有”。有谁能帮帮我呢?下面是我的代码:
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
Roster roster = connection.getRoster();
roster.createEntry("buddy@test.com","me",null)
在代码执行之后,我在openfire中观察到订阅是"to“
发布于 2011-05-25 07:44:27
两个用户都需要相互订阅。通过发送在线状态订阅节。在Smack中:
Presence presence = new Presence(Presence.Type.subscribe);
presence.setTo(jid);
connection.sendPacket(presence);
Section 3.1 of the RFC6121将为您提供语义细节。
发布于 2014-03-12 21:13:27
如果你使用的是open fire服务器,你也可以使用User Service plugin,它将创建带有订阅的花名册。
发布于 2017-09-18 17:48:15
我遇到了同样的问题,但我得到了解决方案,如何订阅设置‘两者’
下面是向用户发送订阅,当您添加用户时
Presence pres = new Presence(Presence.Type.subscribed);
pres.setPriority(24);
pres.setMode(Presence.Mode.available);
pres.setTo(friendJid);
RoosterConnection.getConnection().sendStanza(pres);
接收端将下面的方法放在connection类中,presenceChanged是RosterListener的默认方法。
@Override
public void presenceChanged(Presence presence) {
mBus.post(presence);
try {
Presence pres = new Presence(Presence.Type.subscribed);
pres.setTo(presence.getFrom());
RoosterConnection.getConnection().sendStanza(pres);
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
https://stackoverflow.com/questions/5802607
复制相似问题