java - 如何在 android 中使用 asmack 4.0.5 获取最后一次查看

标签 java android xmpp openfire asmack

我正在使用 asmack 4.0.5 并且想要检索用户的最后一次查看。我尝试使用:

LastActivityManager lActivityManager = LastActivityManager.getInstanceFor(mConnection);

try {
        Log.v(TAG,"Last Activity: " + ActivityManager.getLastActivity(pArg0.getFrom()));

    } catch (NoResponseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (XMPPErrorException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NotConnectedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

但这总是返回 0 秒。它应该就像当应用程序在后台时,那么用户应该显示为离线。用户只有当他有应用程序在前台时才在线。有人知道如何获取最后一次看到的吗用户。

最佳答案

在线时应发送状态为“在线”的数据包,离线时应发送状态为“离线”的数据包(当应用程序进入后台时,发送“离线” )。现在服务器才能够在其他人询问时让他们知道。

现在,当 A 想知道 B 的最后一次看到的状态并且服务器返回 0 时,那么根据文档,这意味着 B 已经在线.. :) 否则它将是耗时。请阅读此处了解更多详细信息。

LastActivityManager Source Docs

Official XEP-0012

关于java - 如何在 android 中使用 asmack 4.0.5 获取最后一次查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974249/

相关文章:

java - Firebase 存储上的图像和视频

Android AVD 不适用于硬件加速

java - 图像按钮可见性问题!安卓

Android xmpp MUC设置默认配置

java - 如何使用 smack Java 获取 IQ 标签?

java - Eclipse - 为什么不自动建议 .class?

java - 为我的按钮着色的最佳方式?

JavaScript - 检查 Cisco Jabber 用户状态

java - CXF 如何在没有 Spring 的情况下在 CXF 端口上设置 SoapVersion

android - 无法在 Cordova Android 插件中使用资源文件的字符串