基于openfire+smack开发Android即时聊天应用[二]-用户注册、登陆、修改密码、注销等



1.开发准备


欢迎访问我的个人博客:http://ittiger.cn


在官网上下载最新的Smack开发包,我下载的是smack4.1.4版本的,导入相应的jar包即可开始开发工作


2.Openfire服务连接(连接服务器)


    /**
     * 连接服务器
     * @return
     */
    private XMPPTCPConnection connect() {
    	try {
        	XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
        	.setHost(SERVER_IP)//服务器IP地址
        	//服务器端口
        	.setPort(PORT)
        	//服务器名称
        	.setServiceName(SERVER_NAME)
        	//是否开启安全模式
        	.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled)
        	//是否开启压缩
        	.setCompressionEnabled(false)
        	//开启调试模式
        	.setDebuggerEnabled(true).build();
        	
        	XMPPTCPConnection connection = new XMPPTCPConnection(config);
                connection.connect();
                return connection;
        } catch (Exception e) {
        	return null;
        }
    }


3.登陆Openfire服务


   /**
     * 是否连接成功
     * @return
     */
    private boolean isConnected() {
    	if(connection == null) {
    		return false;
    	}
    	if(!connection.isConnected()) {
    	    try {
		connection.connect();
		return true;
	    } catch (SmackException | IOException | XMPPException e) {
		return false;
	    }
    	}
    	return true;
    }

   /**
     * 登陆
     * @param user		用户账号
     * @param password		用户密码
     * @return
     * @throws Exception 
     */
    public boolean login(String user, String password) throws Exception {
    	if(!isConnected()) {
    	    return false;
    	}
        try {
            connection.login(user, password);
            return  true;
        } catch (Exception e) {
            throw e;
        }
    }


4.用户注册


该功能会在服务器上创建一个新的账号信息

   /**
     * 注册用户信息
     * @param user        账号,是用来登陆用的,不是用户昵称
     * @param password    账号密码
     * @param attributes  账号其他属性,参考AccountManager.getAccountAttributes()的属性介绍
     * @return
     */
    public boolean registerUser(String user, String password, Map<String, String> attributes) {
    	if(!isConnected()) {
    	    return false;
    	}
    	try {
	    AccountManager.getInstance(connection).createAccount(user, password, attributes);
	    return true;
	} catch (NoResponseException | XMPPErrorException | NotConnectedException e) {
	    Log.e(TAG, "注册失败", e);
	    return false;
	}
    }


5.修改账号密码


   /**
     * 修改密码
     * @param newpassword    新密码
     * @return
     */
    public boolean changePassword(String newpassword) {
    	if(!isConnected()) {
    	    return false;
    	}
	try {
	    AccountManager.getInstance(connection).changePassword(newpassword);
	    return true;
	} catch (NoResponseException | XMPPErrorException | NotConnectedException e) {
	    Log.e(TAG, "密码修改失败", e);
	    return false;
	}
    }


6.注销(断开连接)


    /**
     * 注销
     * @return
     */
    public boolean logout() {
    	if(!isConnected()) {
    	    return false;
    	}
        try {
            connection.instantShutdown();
            return  true;
        } catch (Exception e) {
            e.printStackTrace();
            return  false;
        }
    }


7.删除账号


   /**
     * 删除当前登录的用户信息(从服务器上删除当前用户账号)
     * @return
     */
    public boolean deleteUser() {
    	if(!isConnected()) {
    	    return false;
    	}
    	try {
	    AccountManager.getInstance(connection).deleteAccount();//删除该账号
	    return true;
	} catch (NoResponseException | XMPPErrorException | NotConnectedException e) {
	    return false;
	}
    }


代码都非常简单,smack的api调用很方便。


write by laohu

2015-10-30 16:56:07

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值