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

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

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



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

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

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

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

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

[java] view plaincopy

  1. public class LoginActivity extends Activity{  

  2.     private EditText accountEditText;  

  3.     private EditText passwordEditText;  

  4.     private CheckBox remeberCheckBox;  

  5.       

  6.      public void onCreate(Bundle savedInstanceState) {  

  7.             super.onCreate(savedInstanceState);  

  8.             requestWindowFeature(Window.FEATURE_NO_TITLE);  

  9.             setContentView(R.layout.activity_login);  

  10.             accountEditText=(EditText) findViewById(R.id.login_account);  

  11.             passwordEditText=(EditText) findViewById(R.id.login_password);  

  12.             remeberCheckBox=(CheckBox) findViewById(R.id.login_remember);  

  13.               

  14.             findViewById(R.id.login_login).setOnClickListener(new OnClickListener(){  

  15.                 public void onClick(View v) {  

  16.                     String account=accountEditText.getText().toString();  

  17.                     String password=passwordEditText.getText().toString();  

  18.                     if(account.equals("") || password.equals("")){  

  19.                         Toast.makeText(LoginActivity.this"账号或密码不能为空!", Toast.LENGTH_SHORT).show();  

  20.                     }else{  

  21.                         ClientConServer ccs=new ClientConServer(LoginActivity.this);  

  22.                         boolean b=ccs.login(account,password);  

  23.                         //如果登录成功  

  24.                         if(b){  

  25.                             Toast.makeText(LoginActivity.this"登陆成功!", Toast.LENGTH_SHORT).show();  

  26.                             startActivity(new Intent(LoginActivity.this,MainActivity.class));  

  27.                             MainActivity.account=account;  

  28.                         }else{  

  29.                             Toast.makeText(LoginActivity.this"登陆失败!", Toast.LENGTH_SHORT).show();  

  30.                         }  

  31.                     }  

  32.                 }  

  33.             });  

  34.      }  

  35. }  


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

[java] view plaincopy

  1. public class ClientConServer {  

  2.     private static int PORT=5222;  

  3.     private Context context;  

  4.     public ClientConServer(Context context){  

  5.         this.context=context;  

  6.   

  7.     }  

  8.       

  9.     public boolean login(String a,String p){  

  10.         ConnectionConfiguration config = new ConnectionConfiguration(Constant.SERVER, PORT);  

  11.         /** 是否启用安全验证 */  

  12.         config.setSASLAuthenticationEnabled(false);  

  13.         /** 是否启用调试 */  

  14.         //config.setDebuggerEnabled(true);  

  15.         /** 创建connection链接 */  

  16.         XMPPConnection connection = new XMPPConnection(config);  

  17.         try {  

  18.             /** 建立连接 */  

  19.             connection.connect();  

  20.             /** 登录*/  

  21.             connection.login(a, p);  

  22.             /** 开启读写线程,并加入到管理类中*/  

  23.             //ClientSendThread cst=new ClientSendThread(connection);  

  24.             //cst.start();  

  25.             //ManageClientThread.addClientSendThread(a, cst);  

  26.             return true;  

  27.         } catch (XMPPException e) {  

  28.             e.printStackTrace();  

  29.         }  

  30.         return false;  

  31.      }  

  32. }  


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

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

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


你可能感兴趣的:(android,openfire)