Tôi mới sử dụng thư viện smack và tạo một ứng dụng trò chuyện. Tôi đã thực hiện tối đa mức độ và ở bước này tôi muốn hỏi hai câu hỏi.Android THÊM BẠN B using sử dụng Smack
khi tôi thêm một người bạn mà bạn bè đã thêm vào danh sách của tôi nhưng không có bất kỳ thông báo nào gửi tới FRIEND mà tôi đã thêm, Cách đạt được điều tương tự. Tôi đã thêm mã bên dưới. Điều thứ hai tôi muốn hỏi là làm thế nào tôi có thể kiểm tra xem người dùng mà tôi sẽ thêm là một phần hay thành viên của ứng dụng hay không (có nghĩa là nó là trên máy chủ hay không). Vì vậy, người dùng không được đăng ký vào ứng dụng sẽ không được thêm vào danh sách bạn bè.
đây là mã
public static boolean addFriend(String jid) {
String nickname = null;
nickname = StringUtils.parseBareAddress(jid);
RosterEntry entry4 = roster.getEntry("samsad");
if (!roster.contains(jid)) {
try {
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo(jid);
connection.sendPacket(subscribe);
roster.createEntry(jid, nickname, null);
// Send a roster entry (any) to user2
RosterExchangeManager REM = new RosterExchangeManager(connection);
REM.send(entry4, jid);
return true;
} catch (XMPPException e) {
System.err.println("Error in adding friend");
return false;
}
} else {
return false;
}
}
quản lý Roster Trao đổi chạy trong dịch vụ trong nền
/**Remotr Exchange Manager*/
RosterExchangeManager rem = new RosterExchangeManager(connection);
// Create a RosterExchangeListener that will iterate over the received roster entries
RosterExchangeListener rosterExchangeListener = new RosterExchangeListener() {
public void entriesReceived(String from, Iterator remoteRosterEntries) {
notification("Receive==4");
while (remoteRosterEntries.hasNext()) {
try {
// Get the received entry
RemoteRosterEntry remoteRosterEntry = (RemoteRosterEntry) remoteRosterEntries.next();
// Display the remote entry on the console
System.out.println(remoteRosterEntry);
// Add the entry to the user2's roster
roster.createEntry(
remoteRosterEntry.getUser(),
remoteRosterEntry.getName(),
remoteRosterEntry.getGroupArrayNames());
notification("Receive==1");
}
catch (XMPPException e) {
e.printStackTrace();
}
}
}
};
rem.addRosterListener(rosterExchangeListener);
}
else{
showToast("Connection lost-",0);
}
}
@Trickster, vui lòng trả lời ngay –