我正在使用下面的内容获取xmpp邀请进行群组聊天,并成功获得邀请,但某个地方接受邀请无法接受邀请。
这是我的邀请和接受群聊的代码:
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;
}
}
答案 0 :(得分:0)
在连接到服务器
之前将此扩展程序管理器添加到ProviderManager
ProviderManager.getInstance().addExtensionProvider("x", "http://jabber.org/protocol/muc#user", new MUCUserProvider());
我希望它可以帮助你...