Android IM客户端登陆Openfire 之一

我用的android是4.1.2的,Openfrre的配置见:http://blog.csdn.net/chexitianxia/article/details/9371169

界面编写见:http://blog.csdn.net/vestigge/article/details/8124674 

首先在openfire上建立一个测试账号,因为是先写好的,没有注消部分,所以现在截图是显示在线的



LoginActivity.java
public class LoginActivity extends Activity{ 
    private EditText accountEditText; 
    private EditText passwordEditText; 
    private CheckBox remeberCheckBox; 
    private Button login;
     
     public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            requestWindowFeature(Window.FEATURE_NO_TITLE); 
            setContentView(R.layout.activity_login); 
            accountEditText=(EditText) findViewById(R.id.et_account); 
            passwordEditText=(EditText) findViewById(R.id.et_password); 
            remeberCheckBox=(CheckBox) findViewById(R.id.login_remember);
            login = (Button) this.findViewById(R.id.btn_login);
             
            login.setOnClickListener(new View.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{ 
                     new MyTask().execute(account,password);
                    } 
                } 
            }); 
     } 
     public class MyTask extends AsyncTask<String, Void,String> {
   //表示任务执行之前的操作
   @Override
   protected void onPreExecute() {
    // TODO Auto-generated method stub
    super.onPreExecute();
    System.out.println("进到onPreExecute");
    
   }
   //主要是完成耗时操作
   @Override
   protected String doInBackground(String... params) {
    // TODO Auto-generated method stub
    System.out.println("进到doInBackground");
    ClientConServer ccs=new ClientConServer(LoginActivity.this);
    
    boolean b=ccs.login(params[0],params[1]);
    String resut = String.valueOf(b);
    System.out.println("resut="+resut);
    
    return resut;
   }
   //主要是更新UI操作
   @Override
   protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    super.onPostExecute(result);
    System.out.println("进到onPostExecute");
    if(result.equals("true")){ 
              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(); 
          } 
    
   }
  }


ClientConServer.java

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("192.168.1.103", 5222); 
        /** 是否启用安全验证 */ 
        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; 
     } 


注意:客户端需要加入一个org.jivesoftware.smack-3.1.0.jar 包才中。

运行登陆后服务端会显示登陆成功!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值