无法获取 jabberId 的 LastActivity
Not able to get LastActivity of a jabberId
我试图通过这段代码获取特定 jabberId 的最后离线时间。
LastActivityManager lActivityManager = LastActivityManager.getInstanceFor(MessageService.getConnection());
lActivityManager.isLastActivitySupported(to + "@localhost");
Log.v(TAG, "Last Activity: " + lActivityManager.getLastActivity(to + "@localhost"));
LastActivity activity = lActivityManager.getLastActivity(to + "@localhost");
但我不断收到服务不可用的异常。
我已经检查了服务器配置,但此功能已从服务器端正确实现。
您是否添加了其他 jabber id 作为您的花名册。如果没有尝试添加它们,然后检查。
如果您使用的是 ejabbered,那么您可以从他们的管理面板手动添加花名册以进行测试。
我使用此代码片段添加名册--
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
String number = datacollection.get(i).getNo().replace("+", "");
String jid = number + "@localhost";
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries)
{
System.out.println(entry);
if (entry.getUser().equals(jid))
{
rosterAlreadyAdded = true;
if (entry.getType() != RosterPacket.ItemType.both)
{
// Create a presence subscription packet and send.
Presence presencePacket = new Presence(Presence.Type.subscribe);
presencePacket.setTo(jid);
connection.sendStanza(presencePacket);
}
}
}
if (!rosterAlreadyAdded)
roster.createEntry(jid, jid, null);
我试图通过这段代码获取特定 jabberId 的最后离线时间。
LastActivityManager lActivityManager = LastActivityManager.getInstanceFor(MessageService.getConnection());
lActivityManager.isLastActivitySupported(to + "@localhost");
Log.v(TAG, "Last Activity: " + lActivityManager.getLastActivity(to + "@localhost"));
LastActivity activity = lActivityManager.getLastActivity(to + "@localhost");
但我不断收到服务不可用的异常。 我已经检查了服务器配置,但此功能已从服务器端正确实现。
您是否添加了其他 jabber id 作为您的花名册。如果没有尝试添加它们,然后检查。 如果您使用的是 ejabbered,那么您可以从他们的管理面板手动添加花名册以进行测试。 我使用此代码片段添加名册--
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
String number = datacollection.get(i).getNo().replace("+", "");
String jid = number + "@localhost";
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries)
{
System.out.println(entry);
if (entry.getUser().equals(jid))
{
rosterAlreadyAdded = true;
if (entry.getType() != RosterPacket.ItemType.both)
{
// Create a presence subscription packet and send.
Presence presencePacket = new Presence(Presence.Type.subscribe);
presencePacket.setTo(jid);
connection.sendStanza(presencePacket);
}
}
}
if (!rosterAlreadyAdded)
roster.createEntry(jid, jid, null);