android - 在离线状态下使用 smack android 获取好友请求的问题

标签 android smack

我正在使用 smack api 在 android 中开发聊天应用程序。我在离线状态下获取好友请求时遇到问题。我正在使用以下代码收到好友请求。

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;
  }
});

这在用户在线时工作正常。但是假设当用户离线时,另一个用户向该用户发送好友请求。当用户上线时,我无法收到好友请求,因为没有调用监听器。需要调用监听器,以获取在离线状态下收到的所有好友请求。

请帮忙。

最佳答案

您的代码没问题。这也发生在我身上。嗯,实际问题是您在收到请求后注册监听器。

尝试在登录用户之前注册监听器,您会看到即使您处于离线状态也会收到请求。

这样就可以真正解决问题了。试试这个,如果您仍然遇到任何问题...请详细说明您的情况。

希望这对您有所帮助。

关于android - 在离线状态下使用 smack android 获取好友请求的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23992097/

相关文章:

android - 回国后的声明

java - 使用 Smack 在 XMPP 消息中发送 <a>m 中的链接或具有相同效果的内容

java - openfire服务器是否实现了Mine能力?

android - 如何将自定义字段放入 XMPP vCard Android/SMACK

android - 如何在asmack,android中让用户在线或离线

android - SQLite在Android中创建具有多个主键的表

java - 如何从datasnapshot中的recyclerview获取推送的id?

java - Smack 4.1 重新连接问题

c# - Xamarin Forms WebView 缓存 : GoBack() doesn't call Navigating event

android - 启动Activity慢,新的Activity为空