AnsweredAssumed Answered

Presence in android using smack

Question asked by Dhara on Aug 3, 2016

Hi,

 

I am using smack in Android in order to create a chat application, The issue i now face is , when the user is still online, the other party receives an "unavailable" status message, and also, sometimes, it is when one user sends a msg, the presence gets broadcasted at the other end. Why does that happen?

 

The code to send the presence is as under:

 

Presence presence = new Presence(isOnline ? Presence.Type.available : Presence.Type.unavailable);

presence.setMode(isOnline ? Presence.Mode.available : Presence.Mode.away);

presence.setStatus((isOnline) ? "online" : "offline");

presence.setPriority(24);

connection.sendPacket(presence);

 

while to check if the user is online or offline, i use the followng method:

 

public boolean isUserAvailable(String userId) {

   final Roster roster = Roster.getInstanceFor(connection);

   return roster.getPresence(userId).isAvailable();

}

 

roster.getPresence(partnerId).getType().name();

 

Please assist, as this is really inconsistent at times.

 

Thanks

Outcomes