Java Code Examples for org.jivesoftware.smack.packet.Registration#getPacketID()
The following examples show how to use
org.jivesoftware.smack.packet.Registration#getPacketID() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AccountManager.java From AndroidPNClient with Apache License 2.0 | 6 votes |
/** * Changes the password of the currently logged-in account. This operation can only * be performed after a successful login operation has been completed. Not all servers * support changing passwords; an XMPPException will be thrown when that is the case. * * @throws IllegalStateException if not currently logged-in to the server. * @throws org.jivesoftware.smack.XMPPException if an error occurs when changing the password. */ public void changePassword(String newPassword) throws XMPPException { Registration reg = new Registration(); reg.setType(IQ.Type.SET); reg.setTo(connection.getServiceName()); reg.setUsername(StringUtils.parseName(connection.getUser())); reg.setPassword(newPassword); PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = connection.createPacketCollector(filter); connection.sendPacket(reg); IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Stop queuing results collector.cancel(); if (result == null) { throw new XMPPException("No response from server."); } else if (result.getType() == IQ.Type.ERROR) { throw new XMPPException(result.getError()); } }
Example 2
Source File: AccountManager.java From AndroidPNClient with Apache License 2.0 | 6 votes |
/** * Deletes the currently logged-in account from the server. This operation can only * be performed after a successful login operation has been completed. Not all servers * support deleting accounts; an XMPPException will be thrown when that is the case. * * @throws IllegalStateException if not currently logged-in to the server. * @throws org.jivesoftware.smack.XMPPException if an error occurs when deleting the account. */ public void deleteAccount() throws XMPPException { if (!connection.isAuthenticated()) { throw new IllegalStateException("Must be logged in to delete a account."); } Registration reg = new Registration(); reg.setType(IQ.Type.SET); reg.setTo(connection.getServiceName()); // To delete an account, we set remove to true reg.setRemove(true); PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = connection.createPacketCollector(filter); connection.sendPacket(reg); IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Stop queuing results collector.cancel(); if (result == null) { throw new XMPPException("No response from server."); } else if (result.getType() == IQ.Type.ERROR) { throw new XMPPException(result.getError()); } }
Example 3
Source File: AccountManager.java From AndroidPNClient with Apache License 2.0 | 6 votes |
/** * Gets the account registration info from the server. * * @throws org.jivesoftware.smack.XMPPException if an error occurs. */ private synchronized void getRegistrationInfo() throws XMPPException { Registration reg = new Registration(); reg.setTo(connection.getServiceName()); PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = connection.createPacketCollector(filter); connection.sendPacket(reg); IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Stop queuing results collector.cancel(); if (result == null) { throw new XMPPException("No response from server."); } else if (result.getType() == IQ.Type.ERROR) { throw new XMPPException(result.getError()); } else { info = (Registration)result; } }
Example 4
Source File: AccountManager.java From AndroidPNClient with Apache License 2.0 | 5 votes |
/** * Creates a new account using the specified username, password and account attributes. * The attributes Map must contain only String name/value pairs and must also have values * for all required attributes. * * @param username the username. * @param password the password. * @param attributes the account attributes. * @throws org.jivesoftware.smack.XMPPException if an error occurs creating the account. * @see #getAccountAttributes() */ public void createAccount(String username, String password, Map<String, String> attributes) throws XMPPException { if (!supportsAccountCreation()) { throw new XMPPException("Server does not support account creation."); } Registration reg = new Registration(); reg.setType(IQ.Type.SET); reg.setTo(connection.getServiceName()); reg.setUsername(username); reg.setPassword(password); for(String s : attributes.keySet()){ reg.addAttribute(s, attributes.get(s)); } PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = connection.createPacketCollector(filter); connection.sendPacket(reg); IQ result = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Stop queuing results collector.cancel(); if (result == null) { throw new XMPPException("No response from server."); } else if (result.getType() == IQ.Type.ERROR) { throw new XMPPException(result.getError()); } }
Example 5
Source File: XmppConnectReceiver.java From AndroidPNClient with Apache License 2.0 | 5 votes |
public boolean register(String user, String pass) { Log.i(LOG_TAG, "RegisterTask.run()..."); if (xmppManager.isRegistered()) { Log.i(LOG_TAG, "Account registered already"); return true; } final Registration registration = new Registration(); PacketFilter packetFilter = new AndFilter(new PacketIDFilter( registration.getPacketID()), new PacketTypeFilter( IQ.class)); PacketCollector collector = xmppManager.getConnection().createPacketCollector(packetFilter); registration.setType(IQ.Type.SET); registration.addAttribute("username", user); registration.addAttribute("password", pass); if (xmppManager.getConnection().isConnected()) { xmppManager.getConnection().sendPacket(registration); IQ result = (IQ) collector.nextResult(REGISTER_TIME_OUT); collector.cancel(); if(result == null) { Log.d(LOG_TAG, "The server didn't return result after 60 seconds."); return false; } else if (result.getType() == IQ.Type.ERROR) { if(result.getError().toString().contains("409")) { return true; } else { return false; } } else if (result.getType() == IQ.Type.RESULT) { return true; } return false; } else { Log.d(LOG_TAG, "connection is not connected"); return false; } }
Example 6
Source File: XmppConnection.java From weixin with Apache License 2.0 | 5 votes |
/** * 注册 * * @param account 注册帐号 * @param password 注册密码 * @return 1、注册成功 0、服务器没有返回结果2、这个账号已经存在3、注册失败 */ public String regist(String account, String password) { if (getConnection() == null) return "0"; Registration reg = new Registration(); reg.setType(IQ.Type.SET); reg.setTo(getConnection().getServiceName()); // 注意这里createAccount注册时,参数是UserName,不是jid,是"@"前面的部分。 reg.setUsername(account); reg.setPassword(password); // 这边addAttribute不能为空,否则出错。所以做个标志是android手机创建的吧!!!!! reg.addAttribute("android", "geolo_createUser_android"); PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = getConnection().createPacketCollector(filter); getConnection().sendPacket(reg); IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); // Stop queuing results停止请求results(是否成功的结果) collector.cancel(); if (result == null) { Log.e("regist", "No response from server."); return "0"; } else if (result.getType() == IQ.Type.RESULT) { Log.v("regist", "regist success."); return "1"; } else { // if (result.getType() == IQ.Type.ERROR) if (result.getError().toString().equalsIgnoreCase("conflict(409)")) { Log.e("regist", "IQ.Type.ERROR: " + result.getError().toString()); return "2"; } else { Log.e("regist", "IQ.Type.ERROR: " + result.getError().toString()); return "3"; } } }
Example 7
Source File: XmppManager.java From weixin with Apache License 2.0 | 5 votes |
/** * 注册 * * @param account 注册帐号 * @param password 注册密码 * @return 0、 服务器没有返回结果<br> * 1、注册成功 <br> * 2、这个帐号已经存在 <br> * 3、注册失败 */ public String regist(String account, String password) { if (!isConnected()) { return "0"; } Registration reg = new Registration(); reg.setType(IQ.Type.SET); reg.setTo(getConnection().getServiceName()); reg.setUsername(account); reg.setPassword(password); reg.addAttribute("android", "geolo_createUser_android"); //数据包过滤器 PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = getConnection().createPacketCollector(filter); getConnection().sendPacket(reg); IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout()); //停止请求result(是否成功的结果) collector.cancel(); if (result == null) { L.e(LOGTAG, "No response from server."); return "0"; } else if (result.getType() == IQ.Type.RESULT) { return "1"; } else { if (result.getError().toString().equalsIgnoreCase("conflict(409)")) { L.e(LOGTAG, "IQ.Type.ERROR: " + result.getError().toString()); return "2"; } else { L.e(LOGTAG, "IQ.Type.ERROR: " + result.getError().toString()); return "3"; } } }
Example 8
Source File: XmppManager.java From androidpn-client with Apache License 2.0 | 4 votes |
public void run() { Log.i(LOGTAG, "RegisterTask.run()..."); if (!xmppManager.isRegistered()) { newUsername = username; if (username.isEmpty()){ newUsername = newRandomUUID(); } newPassword = password; if (password.isEmpty()) { newPassword = newRandomUUID(); } Registration registration = new Registration(); PacketFilter packetFilter = new AndFilter(new PacketIDFilter( registration.getPacketID()), new PacketTypeFilter( IQ.class)); PacketListener packetListener = new PacketListener() { public void processPacket(Packet packet) { Log.d("RegisterTask.PcktLstnr", "processPacket()....."); Log.d("RegisterTask.PcktLstnr", "packet=" + packet.toXML()); if (packet instanceof IQ) { IQ response = (IQ) packet; if (response.getType() == IQ.Type.ERROR) { if (!response.getError().toString().contains( "409")) { Log.e(LOGTAG, "Unknown error while registering XMPP account! " + response.getError() .getCondition()); } } else if (response.getType() == IQ.Type.RESULT) { xmppManager.setUsername(newUsername); xmppManager.setPassword(newPassword); Log.d(LOGTAG, "username=" + newUsername); Log.d(LOGTAG, "password=" + newPassword); Editor editor = sharedPrefs.edit(); editor.putString(Constants.XMPP_REGISTERED, "true"); editor.remove(Constants.XMPP_USERNAME); editor.remove(Constants.XMPP_PASSWORD); editor.putString(Constants.XMPP_USERNAME, newUsername); editor.putString(Constants.XMPP_PASSWORD, newPassword); editor.apply(); Log .i(LOGTAG, "Account registered successfully"); xmppManager.runTask(); } } } }; connection.addPacketListener(packetListener, packetFilter); registration.setType(IQ.Type.SET); registration.setTo(xmppHost); Map<String, String> attributes = new HashMap<String, String>(); attributes.put("username", newUsername); attributes.put("password", newPassword); if (!email.isEmpty()) { attributes.put("email", email); } if (!name.isEmpty()) { attributes.put("name", name); } registration.setAttributes(attributes); //registration.setAttributes(); //registration.addAttribute("username", newUsername); //registration.addAttribute("password", newPassword); connection.sendPacket(registration); } else { Log.i(LOGTAG, "Account registered already"); xmppManager.runTask(); } }
Example 9
Source File: XmppManager.java From android-demo-xmpp-androidpn with Apache License 2.0 | 4 votes |
public void run() { Log.i(LOGTAG, "RegisterTask.run()..."); if (!xmppManager.isRegistered()) { final String newUsername = newRandomUUID(); final String newPassword = newRandomUUID(); //客户端发送到服务器注册的数据包,Packet的子类 Registration registration = new Registration(); /** * 数据包的ID和类型的过滤器 */ PacketFilter packetFilter = new AndFilter(new PacketIDFilter( registration.getPacketID()), new PacketTypeFilter( IQ.class)); /** * 数据包的监听 */ PacketListener packetListener = new PacketListener() { public void processPacket(Packet packet) { Log.d("RegisterTask.PacketListener", "processPacket()....."); Log.d("RegisterTask.PacketListener", "packet=" + packet.toXML()); //服务器回复客户端 if (packet instanceof IQ) { IQ response = (IQ) packet; if (response.getType() == IQ.Type.ERROR) { //注册失败 if (!response.getError().toString().contains( "409")) { Log.e(LOGTAG, "Unknown error while registering XMPP account! " + response.getError() .getCondition()); } } else if (response.getType() == IQ.Type.RESULT) { //注册成功 xmppManager.setUsername(newUsername); xmppManager.setPassword(newPassword); Log.d(LOGTAG, "username=" + newUsername); Log.d(LOGTAG, "password=" + newPassword); //把用户名和密码保存到共享引用 Editor editor = sharedPrefs.edit(); editor.putString(Constants.XMPP_USERNAME, newUsername); editor.putString(Constants.XMPP_PASSWORD, newPassword); editor.commit(); Log.i(LOGTAG, "Account registered successfully"); xmppManager.runTask(); } } } }; // 给注册的Packet设置Listener,因为只有等到正真注册成功后,我们才可以交流 connection.addPacketListener(packetListener, packetFilter); registration.setType(IQ.Type.SET); // registration.setTo(xmppHost); // Map<String, String> attributes = new HashMap<String, String>(); // attributes.put("username", rUsername); // attributes.put("password", rPassword); // registration.setAttributes(attributes); registration.addAttribute("username", newUsername); registration.addAttribute("password", newPassword); registration.addAttribute("imsi", "460000001232300"); registration.addAttribute("imei", "324234343434434"); // 向服务器端,发送注册Packet包,注意其中Registration是Packet的子类 connection.sendPacket(registration); } else { Log.i(LOGTAG, "Account registered already"); xmppManager.runTask(); } }