 
                    
                
         
    
    
    
	
	
		
		
	
		
		
		
			
- 由于asmack中的createAccount存在一个不能让Attribute(用户描述)为空的问题。  
- 如果Attribute没有设置或者为空,服务器会抛出500错误,或者服务器没有响应。  
- 就算Attribute有设置,createAccount却没有一个服务器返回创建用户成功的信息。  
- 所以,我复写了createAccount下的方法,并自定义了Attribute的值  
- 在注册用户时候,服务器会返回以下信息:  
- 1.   conflict(409):表示创建的用户名出现了冲突,换句话说就是服务器上已经存在了这个用户名了。  
- 2.   RESULT: 服务器返回一个result,这个rusult是客服端发送出去的,服务器返回一样的结果,表示用户创建成功了  
- 3.  500错误: 这个内容多了。说不清楚。下次描述细些  
- XMPPConnection connection = new XMPPConnection(new ConnectionConfiguration(“wys.0101.com.cn”));  
- ConnectionConfiguration(“wys.0101.com.cn”));  
- try {  
- connection.connect();  
- } catch (XMPPException e1) {  
- Toast.makeText(xmppMain.this, “网络连接失败”, Toast.LENGTH_SHORT).show();  
- e1.printStackTrace();  
- }  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-   
-   
- Registration reg = new Registration();  
- reg.setType(IQ.Type.SET);  
- reg.setTo(connection.getServiceName());  
- reg.setUsername(registerUserName.getText().toString());  
- reg.setPassword(registerPassword.getText().toString());  
- reg.addAttribute(“android”, “geolo_createUser_android”);  
- 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());  
-   
- collector.cancel();  
- if (result == null) {  
- Log.e(“xmppMainRegiter”, “No response from server.”);  
- Toast.makeText(xmppMain.this, “服务器没有返回结果”, Toast.LENGTH_SHORT).show();  
- }  
- else if (result.getType() == IQ.Type.ERROR) {  
- if(result.getError().toString().equalsIgnoreCase(“conflict(409)”)){  
- Log.e(“xmppMainRegiter”, “IQ.Type.ERROR: “+result.getError().toString());  
- Toast.makeText(xmppMain.this, “这个账号已经存在”, Toast.LENGTH_SHORT).show();  
- }else{  
- Log.e(“xmppMainRegiter”, “IQ.Type.ERROR: “+result.getError().toString());  
- Toast.makeText(xmppMain.this, “注册失败”, Toast.LENGTH_SHORT).show();  
- }  
- }else if(result.getType() == IQ.Type.RESULT){  
- setToText(R.id.userid, registerUserName.getText().toString());  
- setToText(R.id.password, registerPassword.getText().toString());  
- Toast.makeText(xmppMain.this, “恭喜你注册成功”, Toast.LENGTH_SHORT).show();  
- 本文转自:http:
 
		 
		posted @ 
2013-01-21 14:01 
Lost in code 
阅读(
657) 
评论() 
 
收藏 
举报