上节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

更多相关文章

  1. Andriod中的Context理解与分析
  2. Android(安卓)ORM框架GreenDao入门学习
  3. Android系统Intent的使用
  4. 【Android设备管理】 利用DevicePolicyManager执行屏幕锁定
  5. android支付宝客户端html5网页偶尔无法自动关闭问题
  6. Android(安卓)中动态加载.jar的实现步骤
  7. 再识Intent-实现调用Android内置浏览器打开网页
  8. 把Unity作为Android的子视图
  9. linux和android端的pthread学习

随机推荐

  1. Android Studio 的小小配置
  2. Android Task
  3. Android基础知识:Day01 Android基本认识和
  4. 第一个Android实例——计算器 编辑
  5. 2016Android开发技术篇
  6. Android Activity生命周期详解
  7. 【转】Android通过共享用户ID来实现多Act
  8. Android widget之ListView
  9. Android--spinner选择框,AutoCompleteText
  10. 【Android问题】Android导入一个工程时提