Возможно, я опоздал, чтобы ответить на этот вопрос, но я хотел бы поделиться своим решением здесь, у меня была та же проблема,
Прежде всего, все зависит от того, какую версию smack вы используете (я рекомендовал последнюю версию)
Во-вторых, пользователь, отправляющий приглашение MUC, и пользователь, получающий приглашение, должны быть подключены к одному серверу для получения приглашения MUC.
В-третьих, всегда включайте отладчик smack, он будет предоставлять информацию о входящих и исходящих строфах.
Четвертый фактор, который следует учитывать, - это отправлять информацию о присутствии на сервер XMPP после входа в систему, как показано ниже,
connection.setStatus(true,"ONLINE");
public void setStatus(boolean available, String status) throws XMPPException {
Presence.Type type = available? Type.available: Type.unavailable;
Presence presence = new Presence(type);
presence.setStatus(status);
connection.sendPacket(presence);
}
отправка присутствия информирует сервер xmpp о статусе пользователя, а затем информация о присутствии, а также новое приглашение будут получены, если вы включили прослушиватель на объекте соединения, это работает для меня, надеюсь, оно будет работать и для вас, пожалуйста, исправьте меня, если есть информация неправильно.