1

我目前正在为 android 构建一个聊天应用程序。

XMPP Server: MongooseIM.

XMPP Client: Smack 4.1.5.

目前,登录用户不断从他的烘焙伙伴那里获得状态更新。我只想在应用程序打开时接收这些状态更新,并在应用程序关闭时阻止它们。有没有办法实现这种行为?我曾尝试使用隐私列表,但没有运气。

这是我到目前为止所尝试的。

        PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(mXMPPConnection);
        ArrayList privacyItems = new ArrayList();
        PrivacyItem item = new PrivacyItem(PrivacyItem.Type.subscription, "to", false, 1);
        item.setFilterPresenceIn(true);
        privacyItems.add(item);
        privacyManager.createPrivacyList("subscription", privacyItems);
4

1 回答 1

0

我假设您希望保持连接以接收消息,但希望限制存在流量。

ejabberd 支持XEP-0352 Client State Indication,它就是这样做的。进入后台时,将您的客户端切换到非活动模式,并且不会发送状态更新。返回前台时,将 CSI 状态切换为活动状态,您将收到相关的状态更新,通过删除冗余过时的状态信息进行了优化。

您可以查看 ejabberd 文档:mod_client_state

于 2015-11-30T11:25:32.163 回答