[英]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.