Keshav
November 15, 2013, 10:29am
1
Hello friends
i am trying to get last seen seconds just like whats up show. here is my code to sent packets
Packet pk = new Packet()
{
@Override
public String toXML()
{
// TODO Auto-generated method stub
return "<iq from='myjid@host,com' id='last2' to='friendsjid@host.com' type='get'> <query xmlns='jabber:iq:last'/></iq>";
}
};
XmppActivity.connection.sendPacket(pk);
My Request is
11-15 15:56:34.805: D/SMACK(26753): 03:56:34 PM SENT (1109640912): <iq from='myjid@host.com' id='last2' to='friendjid@host.com' type='get'> <query xmlns='jabber:iq:last'/></iq>
but if my friend is online, it always returns 0 seconds in the results
11-15 15:54:10.910: D/SMACK(26753): 03:54:10 PM RCV (1109640912): <iq type="result" id="last2" from="friendjid@host.com" to="myjid@host.com/Smack"><query xmlns="jabber:iq:last" seconds="0"/></iq>
but if my friend is offline, it always returns -1 seconds in the results
11-15 15:54:10.910: D/SMACK(26753): 03:54:10 PM RCV (1109640912): <iq type="result" id="last2" from="friendjid@host.com" to="myjid@host.com/Smack"><query xmlns="jabber:iq:last" seconds="-1"/></iq>
Please help me to fix this…
Thanks a lot
If you are using asmack/smack you can get last activity that is your last logout time in my case i have done using
LastActivity class from asmack it gives result in seconds and Now you can calculate it
public void getLastSeen(){
try {
LastActivity activity = LastActivity.getLastActivity(XmppActivity.connection, “1234567890@yourdomain”);
Log.d(“LAST ACTIVITY”, activity.lastActivity+"");
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
1 Like
Hello,
I used Smack library and I tried to get the lastactivty like below.
LastActivty lastSeen = LastActivityManager.getLastActivity(ConnectionManager.getInstance().getXmppConn ection(),
Utils.createXmppUserIdByUserId(friendId));
But it gave me the follwing error
08-05 11:59:36.299: E/AndroidRuntime(14006): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zobichat.activity/com.MyChat.activity.ChatInitialActivity}: java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2 cannot be cast to org.jivesoftware.smackx.packet.LastActivity
How can I fix this? Please help.
Flow
August 5, 2014, 7:08am
4
This method is deprecated. Is there any other way to get last activity?
Flow
November 4, 2014, 1:11pm
6
Which method is deprecated (and in which version)?
public void getLastSeen(){
try {
LastActivity activity = LastActivity.getLastActivity(XmppActivity.connection, “1234567890@yourdomain”);
Log.d(“LAST ACTIVITY”, activity.lastActivity+"");
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
This method " LastActivity.getLastActivity(XmppActivity.connection, “1234567890@yourdomain”); " is deprecated so insted of using this one I used " LastActivityManager.getLastActivity(((Connect) getApplication()).getConnection(), “remoteUsername”); ". But still getting a “No response from server exception”.
Flow
November 5, 2014, 8:29am
8
I don’t know which Smack version you are referring to. I recommend you have a look at LastActivityManager (smack 4.0.5 API)