I am using below to get invitation in xmpp for group chat and also successfully getting invitation but somewhere in acceptance of invitation not able to accept the invitation.
This is my code for invitation and acceptance of group chat:
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;
}
}
add this extension manager to ProviderManager
before connecting to server
ProviderManager.getInstance().addExtensionProvider("x", "http://jabber.org/protocol/muc#user", new MUCUserProvider());
I hope it help you...
来源:https://stackoverflow.com/questions/25384627/android-accept-invitation-of-group-chat-by-using-xmpp