gpt4 book ai didi

java - roster.getPresence 给出不可用

转载 作者:行者123 更新时间:2023-11-30 03:36:23 24 4
gpt4 key购买 nike

我正在使用 smack api。

        Presence presencePacket = new Presence(Presence.Type.subscribe);
presencePacket.setTo("dhmohn@example.com");
conn1.sendPacket(presencePacket);

Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
Roster roster=conn1.getRoster();

Collection<RosterEntry> entries = roster.getEntries();

for (RosterEntry entry : entries) {
System.out.println(roster.getPresence(entry.getUser()));
}

在上面的代码中roster.getPresence(entry.getUser())给出的状态为不可用

此外,我还有以下疑问:

  1. 此处 dhmohn@example.com 是用户名为 danmorgan 的用户的电子邮件 ID。我使用的 jid 是否正确?
  2. 如果上面的jid是错误的,那么正确的jid可能是什么?顺便说一句,我也尝试过以下jid:danmorgan@saint-pc

请注意,在openfire服务器上,我已为两个用户将订阅模式设置为两者

最佳答案

存在状态 = new Presence(Presence.Type.available); 连接.sendPacket(存在);

                Roster roster = connection.getRoster();
roster.addRosterListener(new RosterListener() {

@Override
public void presenceChanged(Presence presence) {
// TODO Auto-generated method stub
String user = presence.getFrom();
// Presence bestPresence = roster.getPresence(user);
Log.e("User Presence--------->****-->",
"User Name-----" + user
+ "Online or Offline ---->"
+ presence.isAvailable());
}

@Override
public void entriesUpdated(Collection<String> arg0) {
// TODO Auto-generated method stub

}

@Override
public void entriesDeleted(Collection<String> arg0) {
// TODO Auto-generated method stub

}

@Override
public void entriesAdded(Collection<String> arg0) {
// TODO Auto-generated method stub

}
});

在这里,您可以获取用户离线时的状态更新以及状态更改时的在线状态。

关于java - roster.getPresence 给出不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com