Android基于XMPP Smack Openfire开发IM(2)登录openfire
上节openfire服务器已经搭建完成,这节看看,怎么使用smack基于xmpp协议登录openfire服务器,
在服务器中创建好测试的账号
下面看android客户端的代码,关于界面布局就不多说了,可以参考QQandroid客户端的界面:
Android高仿QQ登录界面http://blog.csdn.net/vestigge/article/details/8124674
至于为什么要仿别人的东西,不是喜欢山寨,而是素材方便,总不能自己又编码,又当美工吧,时间都花在PS上面了,那样,元芳,你说是吧?
登录界面完成以后,下面是登陆的代码:
[java]view plaincopy
publicclassLoginActivityextendsActivity{
privateEditTextaccountEditText;
privateEditTextpasswordEditText;
privateCheckBoxremeberCheckBox;
publicvoidonCreate(BundlesavedInstanceState){
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(newOnClickListener(){
publicvoidonClick(Viewv){
Stringaccount=accountEditText.getText().toString();
Stringpassword=passwordEditText.getText().toString();
if(account.equals("")||password.equals("")){
Toast.makeText(LoginActivity.this,"账号或密码不能为空!",Toast.LENGTH_SHORT).show();
}else{
ClientConServerccs=newClientConServer(LoginActivity.this);
booleanb=ccs.login(account,password);
//如果登录成功
if(b){
Toast.makeText(LoginActivity.this,"登陆成功!",Toast.LENGTH_SHORT).show();
startActivity(newIntent(LoginActivity.this,MainActivity.class));
MainActivity.account=account;
}else{
Toast.makeText(LoginActivity.this,"登陆失败!",Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
代码没什么可说的,又基础的人都懂的,下面是smack具体登陆的代码,即上边代码中ClientConServer类:
[java]view plaincopy
publicclassClientConServer{
privatestaticintPORT=5222;
privateContextcontext;
publicClientConServer(Contextcontext){
this.context=context;
}
publicbooleanlogin(Stringa,Stringp){
ConnectionConfigurationconfig=newConnectionConfiguration(Constant.SERVER,PORT);
/**是否启用安全验证*/
config.setSASLAuthenticationEnabled(false);
/**是否启用调试*/
//config.setDebuggerEnabled(true);
/**创建connection链接*/
XMPPConnectionconnection=newXMPPConnection(config);
try{
/**建立连接*/
connection.connect();
/**登录*/
connection.login(a,p);
/**开启读写线程,并加入到管理类中*/
//ClientSendThreadcst=newClientSendThread(connection);
//cst.start();
//ManageClientThread.addClientSendThread(a,cst);
returntrue;
}catch(XMPPExceptione){
e.printStackTrace();
}
returnfalse;
}
}
smack连接服务器就是这么简单,关键代码只有几行,甚至你可以不懂xmpp协议,几行代码就可以完成基于xmpp协议的消息,
登陆成功后,在openfire管理控制台中可以看到test账号在线。
更多相关文章
- 从Android项目学习Kotlin(一)
- 如何获取Android源码
- Android之GridView简单说明
- 22个值得收藏的android开源代码-UI篇
- Android异步消息处理机制 全解析
- 在代码中实现android:tint效果
- android 中 application 的使用
- Android(安卓)高手进阶教程(十三)之----Android(安卓)数据库SQLi
- Android(安卓)Studio NDK开发在C代码中将Log输出到logcat上面