簡體   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