繁体   English   中英

在离线状态下使用smack android获取好友请求时出现问题

[英]Issue in getting friend request using smack android in offline state

我在开发Android中的聊天应用程序时使用了smack api。 我在使好友请求处于脱机状态时遇到问题。 通过使用以下代码,我收到了好友请求。

LoginScreen.connection.addPacketListener(new PacketListener() {
    public void processPacket(Packet packet) {
        final Presence newPresence = (Presence) packet;
    final Presence.Type presenceType = newPresence.getType();
    final String fromId = newPresence.getFrom();
    final String toId = newPresence.getTo();
    final RosterEntry newEntry = roster.getEntry(fromId);
    final String name = fromId.substring(0, fromId.indexOf("@"));
    if (presenceType == Presence.Type.subscribed) {
        Log.i("test-chat", "#####SUBSCRIBED#########");
    }
    if (presenceType == Presence.Type.subscribe) {
            //adding buddy request to local DB
        }
    }
 }, new PacketFilter() {
     public boolean accept(Packet packet) {
     if (packet instanceof Presence) {
         Presence presence = (Presence) packet;
     if (presence.getType().equals(Presence.Type.subscribed)
        || presence.getType().equals(Presence.Type.subscribe)
        || presence.getType().equals(Presence.Type.unsubscribed)
        || presence.getType().equals(Presence.Type.unsubscribe)
        || presence.getType().equals(Presence.Type.available)
        || presence.getType().equals(Presence.Type.unavailable)) {
         return true;
     }
     }
     return false;
  }
});

用户在线时,这可以正常工作。 但是,假设用户离线时,另一个用户向该用户发送了好友请求。 当用户上线时,我无法获得好友请求,因为未调用侦听器。 需要调用侦听器,以获取在脱机状态期间获得的所有伙伴请求。

请帮忙。

您的代码很好。 这也发生在我身上。 好吧,实际的问题是您已经在收到请求之后注册了侦听器。

登录用户之前,请尝试注册侦听器,即使您处于脱机状态,您也会看到已收到请求。

这实际上可以解决问题。 试试这个,如果您仍然遇到任何问题...请详细说明您的情况。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM