java - ユーザーの作成、許可されない(406)

java android debugging xmpp smack

Androidコードでasmack XMPPを使用しています。 XMPPサーバーに正常にログインしていますが、新しいユーザーを作成しようとすると問題が発生します。私が達成したいことは次のとおりです:


管理者でログインします。
新しいユーザーを作成します。
管理者からログアウトします。
新しく作成したユーザーとしてログインします。
いくつかのアクションを実行-ゲームをプレイします。
新しく作成したユーザーを削除します。


これにより、登録は自動的に処理され、ユーザーは現時点でまだ利用可能な名前を選択できるため、プレーヤーは登録できません。

現在のコードは次のとおりです。

  public void create_user(String username, String password) {
    try {
      connection.login("user", "pass");
    } catch (XMPPException e) {
      e.printStackTrace();
    }

    if (connection.isAuthenticated()) {
      AccountManager manager = connection.getAccountManager();
      try {
        manager.createAccount(username, password);
      } catch (XMPPException e) {
        Log.w("[create_user] Cannot create new user: XMPP Exception.", "0");
        e.printStackTrace();
      } catch (IllegalStateException e) {
        Log.w("[create_user] Cannot create new user: not logged in.", "0");
        e.printStackTrace();
      }
    }

  }


コードのログイン部分は成功しています。コードの2番目の部分はそうではありません。次のエラーが表示されます。

W/[create_user] Cannot create new user: XMPP Exception.( 1525): 0
W/System.err( 1525): not-acceptable(406)
W/System.err( 1525):    at org.jivesoftware.smack.AccountManager.createAccount(AccountManager.java:246)
W/System.err( 1525):    at org.jivesoftware.smack.AccountManager.createAccount(AccountManager.java:207)
W/System.err( 1525):    at company.games.boxer.XMPPManager.create_user(XMPPManager.java:81)
W/System.err( 1525):    at company.games.boxer.XMPPManager.xmpp_login(XMPPManager.java:113)
W/System.err( 1525):    at company.games.boxer.XMPPClient.onCreate(XMPPClient.java:19)
W/System.err( 1525):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
W/System.err( 1525):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
W/System.err( 1525):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
W/System.err( 1525):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
W/System.err( 1525):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
W/System.err( 1525):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1525):    at android.os.Looper.loop(Looper.java:123)
W/System.err( 1525):    at android.app.ActivityThread.main(ActivityThread.java:4627)
W/System.err( 1525):    at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1525):    at java.lang.reflect.Method.invoke(Method.java:521)
W/System.err( 1525):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
W/System.err( 1525):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
W/System.err( 1525):    at dalvik.system.NativeStart.main(Native Method)


誰かが理由を教えてもらえますか?私はuser:pass(XMPPサーバーの管理者)としてログインしているため、ユーザーを作成するための十分な権限があります。
答え
smack docsを見てください。ここでは、


サーバーでは、次のようないくつかの追加のアカウント属性が必要になる場合があります。
メールアドレスと電話番号。


これは、XEP-0077の登録エラーと一致します(「例7.ホストは失敗した登録のエンティティーに通知します(一部の必要な情報が提供されていません)」)。
必要な属性をgetAccountAttributes()で確認し、スマックデバッガーが送受信されるデータを確認して、必要なすべてのタグがあることを確認する必要があります。

これが問題の解決に役立つことを願っています。
関連記事

java - SConsでプロジェクトをビルドするときにJavaフラグを指定するにはどうすればよいですか?

java - Spring MappedInterceptorマッピング構文

java - Java:インスタンス化せずにフィールドのデフォルト値を取得することは可能ですか?

java - JTextPaneでのリスト項目の二重挿入

java - 投票用のReddit API

java - Javaのファイルシステムでサポートされている最大のiノード制限を取得するにはどうすればよいですか?

java - スケジュールされたタイマーがあるかどうかを知る方法

java - 同じ行に終了要素と開始要素があるStax発行解析ドキュメント

java - GridView / ListViewアダプターでImageViewおよびTextViewを動的に設定するにはどうすればよいですか?

java - スレッドを「1つずつ」実行