14

ここの素晴らしい投稿を使用して、xmpp サーバーと android クライアントをセットアップしました... xmpp サーバーにいくつかの事前定義されたユーザーをセットアップし、それらの資格情報でログインできました。

今、私のアプリから、Androidクライアントを介してxmppサーバーに新しいユーザーとして登録したいと思います。誰でもこれを達成する方法を教えてください...どんな助けでも大歓迎です...!!!

4

9 に答える 9

7

遅れているかもしれませんが、 latest を使用している場合は、smack-android:4.1.0以下のコードを試してXMPPTCPConnectionConfigurationconnectionオブジェクトを作成し、ユーザーを登録してください:

// Creating a connection
XMPPTCPConnectionConfiguration connConfig =
        XMPPTCPConnectionConfiguration.builder()
                .setHost("myHost.com")  // Name of your Host
                .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
                .setPort(5222)          // Your Port for accepting c2s connection
                .setDebuggerEnabled(true)
                .setServiceName("myServiceName")
                .build();
AbstractXMPPConnection connection = new XMPPTCPConnection(connConfig);

try {
    // connecting...
    connection.connect();
    Log.i("TAG", "Connected to " + connection.getHost());

    // Registering the user
    AccountManager accountManager = AccountManager.getInstance(connection);
    accountManager.sensitiveOperationOverInsecureConnection(true);
    accountManager.createAccount(username, password);   // Skipping optional fields like email, first name, last name, etc..
} catch (SmackException | IOException | XMPPException e) {
    Log.e("TAG", e.getMessage());
    xmppClient.setConnection(null);
}
于 2016-05-25T11:36:18.633 に答える
7

Smack には、 AccountManagerクラスを介して使用できる InBand 登録機能があります。すべてのサーバーでこの機能が実装/有効化されているわけではないことに注意してください。

于 2011-08-21T18:54:53.143 に答える
0

Asmack ライブラリ バージョン 4.0 以降の変更を反映するように回答を更新したいと思います。Connection.getAccountManager() は AccountManager.getInstance(XMPPConnection) になりました

AccountManager accountManager=AccountManager.getInstance(connection);
try {
    accountManager.createAccount("username", "password");
} catch (XMPPException e1) {
    Log.d(e1.getMessage(), e1);
}
于 2014-09-17T13:02:42.140 に答える
0

ユーザー名とパスワードを投稿パラメーターとして受け取るWebサービスを開発することで解決しました。ユーザー名とパスワードを投稿すると、Web サービスは新しいユーザーを登録します。

アプリからサインアップする代わりに、これはかなり簡単であることがわかりました...

于 2011-01-07T13:12:57.887 に答える
-2

クライアントのInBand登録機能を実装する必要があります

于 2010-12-18T09:08:23.840 に答える