Thanks Yrii,
Code for the android studio is not using SMACK XMPP connection or XMPP TCP Connection class. And thanks for your response here i get my connection work in android studio:
- Add SMACK API to android project by adding dependencies in build.gradle for the app.
compile ‘org.igniterealtime.smack:smack-android:4.1.4’
// Optional for XMPPTCPConnection
compile ‘org.igniterealtime.smack:smack-tcp:4.1.4’
// Optional for XMPP-IM (RFC 6121) support (Roster, Threaded Chats)
compile ‘org.igniterealtime.smack:smack-im:4.1.4’
// Optional for XMPP extensions support
compile ‘org.igniterealtime.smack:smack-extensions:4.1.4’
- Here is my MYXMPP CLASS code which i am using to connect
We can use the following class by making an object of this class, and also i am creating github repository for the Android Smack API Example Application which is located at axcl/SMACK-API-Android-Demo · GitHub
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import org.jivesoftware.smack.AbstractXMPPConnection;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.ConnectionListener;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.chat.Chat;
import org.jivesoftware.smack.chat.ChatManager;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
import java.io.IOException;
/**
- Created by Ankit on 10/3/2015.
*/
public class MyXMPP {
private static final String DOMAIN = “nimbuzz.com”;
private static final String HOST = “o.nimbuzz.com”;
private static final int PORT = 5222;
private String userName ="";
private String passWord = “”;
AbstractXMPPConnection connection ;
ChatManager chatmanager ;
Chat newChat;
XMPPConnectionListener connectionListener = new XMPPConnectionListener();
private boolean connected;
private boolean isToasted;
private boolean chat_created;
private boolean loggedin;
//Initialize
public void init(String userId,String pwd ) {
Log.i(“XMPP”, “Initializing!”);
this.userName = userId;
this.passWord = pwd;
XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setUsernameAndPassword(userName, passWord);
configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
configBuilder.setResource(“Android”);
configBuilder.setServiceName(DOMAIN);
configBuilder.setHost(HOST);
configBuilder.setPort(PORT);
//configBuilder.setDebuggerEnabled(true);
connection = new XMPPTCPConnection(configBuilder.build());
connection.addConnectionListener(connectionListener);
}
// Disconnect Function
public void disconnectConnection(){
new Thread(new Runnable() {
@Override
public void run() {
connection.disconnect();
}
}).start();
}
public void connectConnection()
{
AsyncTask<Void, Void, Boolean> connectionThread = new AsyncTask<Void, Void, Boolean>() {
@Override
protected Boolean doInBackground(Void… arg0) {
// Create a connection
try {
connection.connect();
login();
connected = true;
} catch (IOException e) {
} catch (SmackException e) {
} catch (XMPPException e) {
}
return null;
}
};
connectionThread.execute();
}
public void sendMsg() {
if (connection.isConnected()== true) {
// Assume we’ve created an XMPPConnection name “connection”._
chatmanager = ChatManager.getInstanceFor(connection);
newChat = chatmanager.createChat("concurer@nimbuzz.com");
try {
newChat.sendMessage(“Howdy!”);
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
}
}
public void login() {
try {
connection.login(userName, passWord);
//Log.i(“LOGIN”, “Yey! We’re connected to the Xmpp server!”);
} catch (XMPPException | SmackException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
}
}
//Connection Listener to check connection state
public class XMPPConnectionListener implements ConnectionListener {
@Override
public void connected(final XMPPConnection connection) {
Log.d(“xmpp”, “Connected!”);
connected = true;
if (!connection.isAuthenticated()) {
login();
}
}
@Override
public void connectionClosed() {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
Log.d(“xmpp”, “ConnectionCLosed!”);
connected = false;
chat_created = false;
loggedin = false;
}
@Override
public void connectionClosedOnError(Exception arg0) {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
}
});
Log.d(“xmpp”, “ConnectionClosedOn Error!”);
connected = false;
chat_created = false;
loggedin = false;
}
@Override
public void reconnectingIn(int arg0) {
Log.d(“xmpp”, "Reconnectingin " + arg0);
loggedin = false;
}
@Override
public void reconnectionFailed(Exception arg0) {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
}
});
Log.d(“xmpp”, “ReconnectionFailed!”);
connected = false;
chat_created = false;
loggedin = false;
}
@Override
public void reconnectionSuccessful() {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
Log.d(“xmpp”, “ReconnectionSuccessful”);
connected = true;
chat_created = false;
loggedin = false;
}
@Override
public void authenticated(XMPPConnection arg0, boolean arg1) {
Log.d(“xmpp”, “Authenticated!”);
loggedin = true;
chat_created = false;
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
}
}
}