基于openfire+smack開發(fā)Android即時聊天應用[二]-用戶注冊、登陸叛薯、修改密碼浑吟、注銷等

1. 開發(fā)準備

在官網上下載最新的Smack開發(fā)包,我下載的是smack4.1.4版本的案训,導入相應的jar包即可開始開發(fā)工作

image.png

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.用戶注冊

該功能會在服務器上創(chuàng)建一個新的賬號信息

   /**
     * 注冊用戶信息
     * @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調用很方便蓉冈。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末城舞,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子寞酿,更是在濱河造成了極大的恐慌家夺,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伐弹,死亡現場離奇詭異拉馋,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門煌茴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來随闺,“玉大人,你說我怎么就攤上這事蔓腐【乩郑” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵回论,是天一觀的道長散罕。 經常有香客問我,道長傀蓉,這世上最難降的妖魔是什么欧漱? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮僚害,結果婚禮上硫椰,老公的妹妹穿的比我還像新娘。我一直安慰自己萨蚕,他們只是感情好靶草,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岳遥,像睡著了一般奕翔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浩蓉,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天派继,我揣著相機與錄音,去河邊找鬼捻艳。 笑死驾窟,一個胖子當著我的面吹牛,可吹牛的內容都是我干的认轨。 我是一名探鬼主播绅络,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嘁字!你這毒婦竟也來了恩急?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纪蜒,失蹤者是張志新(化名)和其女友劉穎衷恭,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體纯续,經...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡随珠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年灭袁,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窗看。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡简卧,死狀恐怖,靈堂內的尸體忽然破棺而出烤芦,到底是詐尸還是另有隱情举娩,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布构罗,位于F島的核電站铜涉,受9級特大地震影響,放射性物質發(fā)生泄漏遂唧。R本人自食惡果不足惜芙代,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盖彭。 院中可真熱鬧纹烹,春花似錦、人聲如沸召边。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隧熙。三九已至片挂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贞盯,已是汗流浹背音念。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躏敢,地道東北人闷愤。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像件余,于是被迫代替她去往敵國和親讥脐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內容