Android akzeptiert die Einladung zum Gruppenchat mithilfe von xmpp
Ich verwende unten, um eine Einladung in xmpp für den Gruppenchat zu erhalten und auch erfolgreich eine Einladung zu erhalten, aber irgendwo in der Annahme der Einladung, kann ich die Einladung nicht annehmen.
Dies ist mein Code für die Einladung und Annahme des Gruppenchats:
public static void addMUC() {
MultiUserChat.addInvitationListener(connection, new InvitationListener() {
@Override
public void invitationReceived(Connection conn, final String room, String invitor,
String reason, String password, Message message) {
Constant.showGroupChatInvitationAlert(Constant.MESSAGE_GROUP_CHAT, reason,
room,conn,invitor, _sPrefs.getString("USERNAME", ""), _sPrefs.getString("PASSWORD", ""));
}
});
}
public static void showGroupChatInvitationAlert(final String title, final String message,
final String roomname,final Connection conn,final String inviter, final String user,final String password) {
new Thread(new Runnable() {
public void run() {
joinMultiUserChat(Constant.userName, Constant.password, roomname.split("@")[0]);
}
}).start();
}
public static MultiUserChat joinMultiUserChat(String user, String password, String roomsName) {
try {
XMPPSmackConnection.getInstance();
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
// Create a MultiUserChat window using XMPPConnection
MultiUserChat muc = new MultiUserChat(XMPPSmackConnection.connection, roomsName
+ "@conference." + XMPPSmackConnection.connection.getServiceName());
// The number of chat room services will decide to accept the historical record
DiscussionHistory history = new DiscussionHistory();
history.setMaxStanzas(0);
//history.setSince(new Date());
// Users to join in the chat room
muc.join(user, password, history, SmackConfiguration.getPacketReplyTimeout());
System.out.println("The conference room success....");
return muc;
} catch (XMPPException e) {
e.printStackTrace();
System.out.println("The conference room to fail....");
return null;
}
}