I have an asmack based client, I connect and authenticate, then I fetch a roster, to which I attach a listener and I set myself available.
The listener correctly picks up any changes to presence made after I connect, however I can't find a way of getting the current state of all the entries on my roster.
I tried sending a Presence.Type.subscribe
packet, I tried using Roster#reload()
and I've tried the following:
for (RosterEntry entry : mRoster.getEntries()) {
Presence presence = mRoster.getPresence( entry.getUser() );
...
}
(If I log the presence object above, they all show as 'unavailable')
I've also tried mRoster.getPresence(handle)
inside entriesUpdated
when I get the callback from Roster#reload
and separately when looping over Roster#getEntries
, I get valid user id's but the presence mode is null and type is unavailable for every entry
Is there a way I can prompt the server to send me the current remote information?