ここの素晴らしい投稿を使用して、xmpp サーバーと android クライアントをセットアップしました... xmpp サーバーにいくつかの事前定義されたユーザーをセットアップし、それらの資格情報でログインできました。
今、私のアプリから、Androidクライアントを介してxmppサーバーに新しいユーザーとして登録したいと思います。誰でもこれを達成する方法を教えてください...どんな助けでも大歓迎です...!!!
ここの素晴らしい投稿を使用して、xmpp サーバーと android クライアントをセットアップしました... xmpp サーバーにいくつかの事前定義されたユーザーをセットアップし、それらの資格情報でログインできました。
今、私のアプリから、Androidクライアントを介してxmppサーバーに新しいユーザーとして登録したいと思います。誰でもこれを達成する方法を教えてください...どんな助けでも大歓迎です...!!!
遅れているかもしれませんが、 latest を使用している場合は、smack-android:4.1.0
以下のコードを試してXMPPTCPConnectionConfiguration
のconnection
オブジェクトを作成し、ユーザーを登録してください:
// 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);
}
Smack には、 AccountManagerクラスを介して使用できる InBand 登録機能があります。すべてのサーバーでこの機能が実装/有効化されているわけではないことに注意してください。
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);
}
ユーザー名とパスワードを投稿パラメーターとして受け取るWebサービスを開発することで解決しました。ユーザー名とパスワードを投稿すると、Web サービスは新しいユーザーを登録します。
アプリからサインアップする代わりに、これはかなり簡単であることがわかりました...
クライアントのInBand登録機能を実装する必要があります