-
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 删除这个状态。需要自己写逻辑进行处理