当前位置: 代码迷 >> Android >> Android基于XMPP Smack Openfire开发IM(二)登录openfire
  详细解决方案

Android基于XMPP Smack Openfire开发IM(二)登录openfire

热度:181   发布时间:2016-05-01 12:56:14.0
Android基于XMPP Smack Openfire开发IM(2)登录openfire

上节openfire服务器已经搭建完成,这节看看,怎么使用smack基于xmpp协议登录openfire服务器,

在服务器中创建好测试的账号



下面看android客户端的代码,关于界面布局就不多说了,可以参考QQandroid客户端的界面:

Android高仿QQ登录界面 http://blog.csdn.net/vestigge/article/details/8124674

至于为什么要仿别人的东西,不是喜欢山寨,而是素材方便,总不能自己又编码,又当美工吧,时间都花在PS上面了,那样,元芳,你说是吧?


登录界面完成以后,下面是登陆的代码:

public class LoginActivity extends Activity{	private EditText accountEditText;	private EditText passwordEditText;	private CheckBox remeberCheckBox;		 public void onCreate(Bundle savedInstanceState) {	        super.onCreate(savedInstanceState);	        requestWindowFeature(Window.FEATURE_NO_TITLE);	        setContentView(R.layout.activity_login);	        accountEditText=(EditText) findViewById(R.id.login_account);			passwordEditText=(EditText) findViewById(R.id.login_password);			remeberCheckBox=(CheckBox) findViewById(R.id.login_remember);						findViewById(R.id.login_login).setOnClickListener(new OnClickListener(){				public void onClick(View v) {					String account=accountEditText.getText().toString();					String password=passwordEditText.getText().toString();					if(account.equals("") || password.equals("")){						Toast.makeText(LoginActivity.this, "账号或密码不能为空!", Toast.LENGTH_SHORT).show();					}else{						ClientConServer ccs=new ClientConServer(LoginActivity.this);						boolean b=ccs.login(account,password);						//如果登录成功						if(b){							Toast.makeText(LoginActivity.this, "登陆成功!", Toast.LENGTH_SHORT).show();							startActivity(new Intent(LoginActivity.this,MainActivity.class));							MainActivity.account=account;						}else{							Toast.makeText(LoginActivity.this, "登陆失败!", Toast.LENGTH_SHORT).show();						}					}				}			});	 }}

代码没什么可说的,又基础的人都懂的,下面是smack具体登陆的代码,即上边代码中ClientConServer类:

public class ClientConServer {	private static int PORT=5222;	private Context context;	public ClientConServer(Context context){		this.context=context;	}		public boolean login(String a,String p){		ConnectionConfiguration config = new ConnectionConfiguration(Constant.SERVER, PORT);		/** 是否启用安全验证 */		config.setSASLAuthenticationEnabled(false);		/** 是否启用调试 */        //config.setDebuggerEnabled(true);        /** 创建connection链接 */		XMPPConnection connection = new XMPPConnection(config);		try {			/** 建立连接 */			connection.connect();			/** 登录*/			connection.login(a, p);			/** 开启读写线程,并加入到管理类中*/			//ClientSendThread cst=new ClientSendThread(connection);			//cst.start();			//ManageClientThread.addClientSendThread(a, cst);			return true;		} catch (XMPPException e) {			e.printStackTrace();		}		return false;	 }}

smack连接服务器就是这么简单,关键代码只有几行,甚至你可以不懂xmpp协议,几行代码就可以完成基于xmpp协议的消息,

登陆成功后,在openfire管理控制台中可以看到test账号在线。




转载请注明出处:http://blog.csdn.net/Vestigge

  相关解决方案