Android Studio使用smack進行ejabberd創建用戶

我使用的是smack4.1.2,引用方法我之前在ejabberd的連接、登錄、收發消息這部分介紹過了
CSDN文章地址:
Android studio使用smack連接xmpp服務器收發消息
簡書文章地址:
Android studio使用smack連接xmpp服務器收發消息

在使用注冊功能之前,也需要對ejabberd服務器的配置進行一些小的修改,或者使用創建功能卻遇到了403 -auth錯誤的朋友也可以參考一下。具體方法如下:
CSDN文章地址:
ejabberd16.09創建用戶的403-auth(Denied by ACL)錯誤解決方法
簡書文章地址:
ejabberd16.09創建用戶的403-auth(Denied by ACL)錯誤解決方法

完成了上述的準備工作后,我們就可以進行ejabberd用戶的創建了。具體方法如下:

private void XmppRegister(String username){  
    AccountManager account = AccountManager.getInstance(con);  
    account.sensitiveOperationOverInsecureConnection(true);  
    try {  
        boolean tag = account.supportsAccountCreation();  
        if(tag){  
            Log.d("PushTest", "you can register");  
        }  
        account.createAccount(username, "123456");  
        Log.d("PushTest", "register successfully");  
    } catch (SmackException.NoResponseException e) {  
        e.printStackTrace();  
    } catch (XMPPException.XMPPErrorException e) {  
        e.printStackTrace();  
    } catch (SmackException.NotConnectedException e) {  
        e.printStackTrace();  
    }  
}  

消息如下:

10-26 09:47:39.382 13717-16309/ly.asynctasktest D/SMACK: SENT (0): <presence id='4ZMQm-6'><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>  
10-26 09:47:39.384 13717-16310/ly.asynctasktest D/SMACK: RECV (0): <iq from='admin@hsoft.com' to='admin@hsoft.com/Smack' id='4ZMQm-5' type='result'><query xmlns='jabber:iq:roster'/></iq>  
10-26 09:47:39.384 13717-16310/ly.asynctasktest D/SMACK: RECV (0): <presence from='admin@hsoft.com/Smack' to='admin@hsoft.com/Smack' xml:lang='en' id='4ZMQm-6'><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>  
10-26 09:47:42.145 13717-16309/ly.asynctasktest D/SMACK: SENT (0): <iq to='hsoft.com' id='4ZMQm-9' type='get'><query xmlns='jabber:iq:register'></query></iq>  
10-26 09:47:42.147 13717-16310/ly.asynctasktest D/SMACK: RECV (0): <iq from='hsoft.com' to='admin@hsoft.com/Smack' id='4ZMQm-9' type='result'><query xmlns='jabber:iq:register'><instructions>Choose a username and password to register with this server</instructions><username>admin</username><password/><registered/></query></iq>  
10-26 09:47:42.148 13717-13717/ly.asynctasktest D/PushTest: you can register  
10-26 09:47:42.148 13717-16309/ly.asynctasktest D/SMACK: SENT (0): <iq to='hsoft.com' id='4ZMQm-11' type='set'><query xmlns='jabber:iq:register'><username>1234</username><password>123456</password><registered></registered></query></iq>  
10-26 09:47:42.150 13717-16310/ly.asynctasktest D/SMACK: RECV (0): <iq from='hsoft.com' to='admin@hsoft.com/Smack' id='4ZMQm-11' type='result'/>  
10-26 09:47:42.151 13717-13717/ly.asynctasktest D/PushTest: register successfully  

需要注意的是:
1、需要先建立連接,再進行創建用戶
2、連接的賬號需要具備創建用戶的權限

如果有什么問題,歡迎大家不吝指教!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、Smack庫概述 ????Smack是一個開源、易用的XMPP/Jabber客戶端庫,它使用Java語言開發,...
    AndryYu閱讀 6,295評論 2 13
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • 關于XMPP最權威的講解:http://www.jabbercn.org/RFC3920(這個才是最權威的,下面文...
    隨風飄蕩的小逗逼閱讀 1,533評論 1 5
  • 互聯網架構基礎知識 一、網站常見架構 負載層 頁面緩存層 web層 數據層 二、運維法則 緩存為王 盡量在前端(緩...
    魏鎮坪閱讀 4,861評論 0 9
  • HTTP 400 - 請求無效 HTTP 401.1 - 未授權:登錄失敗 HTTP 401.2 - 未授權:服務...
    本味Vi閱讀 1,219評論 0 2