パブリッククラスRegisterConnectionはActivity {を拡張します
public static final String HOST = "ip";
public static final int PORT = 5222;
public static final String SERVICE = "ip";
private String username;
private String name;
private String email_id;
private String password;
private String cmpassword;
private String user;
private String nam;
private String emailid;
private String pass;
private String cmpass;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getIntentData();
connect();
}
private void getIntentData() {
// TODO Auto-generated method stub
Intent getData=getIntent();
username=getData.getStringExtra("username");
name=getData.getStringExtra("name");
email_id=getData.getStringExtra("email_id");
password=getData.getStringExtra("password");
cmpassword=getData.getStringExtra("cmpassword");
}
private void connect() {
// TODO Auto-generated method stub
final ProgressDialog dialog = ProgressDialog.show(this,"Connecting...", "Please wait...", false);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
ConnectionConfiguration connConfig = new ConnectionConfiguration(
HOST, PORT,SERVICE);
XMPPConnection connection = new XMPPConnection(connConfig);
try {
connection.connect();
Log.i("XMPPChatDemoActivity",
"Connected to " + connection.getHost());
} catch (XMPPException ex)
{
Log.e("XMPPChatDemoActivity", "Failed to connect to "
+ connection.getHost());
Log.e("XMPPChatDemoActivity", ex.toString());
// setConnection(null);
}
try{
//connection.connect();
Log.i("XMPPChatDemoActivity","Logged in as " + connection.getUser());
String kk= connection.getUser();
AccountManager accountManager = connection.getAccountManager();
Map<String, String> attributes = new HashMap<String, String>();
attributes.put("Username", username);
attributes.put("Name", name);
attributes.put("Email", email_id);
attributes.put("Password", password);
attributes.put("Confirm Password", cmpassword);
accountManager.createAccount("ip","",attributes);
Registration registration = new Registration();
registration.setType(IQ.Type.SET);
registration.setTo(connection.getServiceName());
PacketFilter filter = new AndFilter(new PacketIDFilter(registration.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = connection.createPacketCollector(filter);
connection.sendPacket(registration);
connection.disconnect();
// connection.connect();
// connection.login(username, password);
Log.i("XMPPChatDemoActivity","Logged in as " + connection.getUser());
/* AccountManager accountManager = connection.getAccountManager();
Map<String, String> attributes = new HashMap<String, String>();
attributes.put("username", "krishna");
attributes.put("password", "123456");
attributes.put("email", "[email protected]");
attributes.put("name", "krishnathakkar");
accountManager.createAccount("[email protected]", "123456",attributes);
Registration registration = new Registration();
registration.setType(IQ.Type.SET);
registration.setTo(connection.getServiceName());
PacketFilter filter = new AndFilter(new PacketIDFilter(registration.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = connection.createPacketCollector(filter);
connection.sendPacket(registration);
connection.connect();*/
}catch(XMPPException ex){
Log.e("XMPPChatDemoActivity", "Failed to Register in as "
+ username);
connection.disconnect();
}
}
});
t.start();
dialog.show();
}
}
ブロッククォート
上記の登録コードを試しましたが、エラーが発生し、応答フォームサーバーがなく、登録に失敗しました。サーバーとの接続は正常に行われます。ただし、新しいユーザーを作成することはできません
まず、アカウントを作成するためにログインする必要のないこれらの行を削除します。
connection.login("admin", "admin");
Log.i("XMPPChatDemoActivity","Logged in as " + connection.getUser());
String kk= connection.getUser();
また、以下のコードを保持します
Registration registration = new Registration();
registration.setType(IQ.Type.SET);
registration.setTo(connection.getServiceName());
PacketFilter filter = new AndFilter(new PacketIDFilter(registration.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = connection.createPacketCollector(filter);
connection.sendPacket(registration);
connection.disconnect();
またはこれ
AccountManager accountManager = connection.getAccountManager();
Map<String, String> attributes = new HashMap<String, String>();
attributes.put("Username", username);
attributes.put("Name", name);
attributes.put("Email", email_id);
attributes.put("Password", password);
attributes.put("Confirm Password", cmpassword);
accountManager.createAccount("45.56.87.223","5222",attributes);
両方のコードを登録に使用できるため、ユーザーを登録するためにこれらのコードの両方を使用する必要はありません。いずれか1つを使用してください。これで完了です。
また、直火の設定から、nbandアカウント登録が有効になっていることを確認してください。お役に立てば幸いです。ありがとうございます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加