-
xmpp 添加好友 好友狀态監聽
1.1 a + b b delete a a 監聽到 unsubscribed
1.2 b + a b delete a a 監聽到 unsubscrib
1.3 a + b 或者 b + a 被加方收到 subscrib
1.4 a 同意 b 的添加請求 b 收到 subscribed
subscribe ,subscribed 和 unsubscrib ,unsubscribed 都是 a b 雙方互互相動時收到的狀态
2.1 拿到xmpp 連接配接
Roster roster = connection.getRoster();
Collection<RosterEntry> rosterEntries = roster.getEntries();
//進行線程睡眠 500 毫秒,防止好友清單取不到
for (RosterEntry entry : rosterEntries) {
//進行循環判斷 好友的狀态
Both none from to remove 五種狀态 (Android 沒有收到 remove狀态)
根據不同的狀态就行處理
}
-
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
将處理請求方式改為手動。必須再登陸之前設定,否則會出現。好友的請求還沒有接受。自動成為好友
connection.connect();
4.特别需要注意,添加好友删除好友。離線 和線上的差別。比如Android 版的
a 删除 b(離線),那麼b 上線無法收到被 a 删除這個狀态。需要自己寫邏輯進行處理