This is a working code consisting of declared variables and three methods.
1) We declare variables:
private XMPPTCPConnectionConfiguration.Builder builder; private AbstractXMPPConnection connection; private Roster roster;
2) Method for obtaining a builder:
private XMPPTCPConnectionConfiguration.Builder getBuilder(String user, String password) { if (builder == null) { builder = XMPPTCPConnectionConfiguration.builder(); builder.setUsernameAndPassword(user, password); builder.setServiceName("irynas-macbook-air.local"); builder.setHost("irynas-macbook-air.local"); builder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled); builder.setResource("Irynas-MacBook-Air"); builder.setPort(5222); } return builder; }
3) Method for obtaining a connection with authorization:
public AbstractXMPPConnection getConnection(@NonNull String user, @NonNull String password) { if (connection == null) { connection = new XMPPTCPConnection(getBuilder(user, password).build()); connection.addConnectionListener(new ConnectionListener() { @Override public void connected(XMPPConnection connection) { Log.d("Custom", "ChatSystem.class -> connectionListener -> connected! " + connection.getHost()); } @Override public void authenticated(XMPPConnection connection, boolean resumed) { Log.d("Custom", "ChatSystem.class -> connectionListener -> authenticated"); } @Override public void connectionClosed() { Log.d("Custom", "ChatSystem.class -> connectionListener -> connectionClosed "); } @Override public void connectionClosedOnError(Exception e) { Log.d("Custom", "ChatSystem.class -> connectionListener -> connectionClosedOnError"); } @Override public void reconnectionSuccessful() { Log.d("Custom", "ChatSystem.class -> connectionListener -> reconnectionSuccessful"); } @Override public void reconnectingIn(int seconds) { Log.d("Custom", "ChatSystem.class -> connectionListener -> reconnectingIn"); } @Override public void reconnectionFailed(Exception e) { Log.d("Custom", "ChatSystem.class -> connectionListener -> reconnectionFailed"); } }); Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all); roster = Roster.getInstanceFor(connection); roster.setRosterLoadedAtLogin(true); roster.addRosterListener(this); roster.addRosterLoadedListener(this); } return connection; }
4) Method for getting a list of users (roster):
public Roster getRoster() { if (connection == null || roster == null) { return null; } roster = Roster.getInstanceFor(connection); return roster; }
Hope this helps you. Good luck!
connectatconnectionprecisely caused? - Suvitruf ♦connection.login(...)aboutconnection.login(...)orconnection.connect(...). - Suvitruf ♦