나는 asmack XMPP를 안드로이드 코드와 함께 사용하고 있습니다. XMPP 서버에 잘 로그인하고 있지만 새 사용자를 만들려고 할 때 문제가 발생합니다. 달성하고자하는 것은 다음과 같습니다.사용자 만들기, 수용 할 수 없음 (406)
- 관리자와 로그인하십시오.
- 새 사용자를 만드십시오.
- 관리자로부터 로그 아웃.
- 새로 craeted 사용자로 로그인하십시오.
- 몇 가지 조치를 취하십시오 - 게임을하십시오.
- 새로 생성 된 사용자를 삭제하십시오.
플레이어가 등록을 자동으로 처리하고 사용자가 현재 사용할 수있는 이름을 선택할 수 있기 때문에 플레이어가 등록하지 못하게 할 수 있습니다. 코드의
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();
}
}
}
로그인 부분 사점입니다 :
현재 코드는 다음과 같다. 코드의 두 번째 부분은 그렇지 않습니다. 다음 오류가 표시됩니다.
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 서버의 관리자)로 로그인 했으므로 사용자를 만들 수있는 충분한 권한이 있습니다.
* ahem * ... 아 ... 'apk'에 * 서버 관리자 * 사용자 이름과 암호로 *이 코드를 * 배송 할 계획이 아니십니까? – BRFennPocock
기꺼이 도와 드리겠습니다. BRPocock이 말했듯이, 서버에 로그인 할 수있는 사용자 이름/암호를 보내거나 등록을 서버로 옮겨서 현재 사용자의 로그인 자격 증명을 반환하도록 서버에 요청해야합니다. 코드에 관리자 비밀번호를 입력합니다. – Jave