Android 即使通讯



 

  手机上基于位置的社交应用越来越多了, 以找人为目的以不能满足需求,(找到人不说话(不能说话),倒还不如不找。)  所有,即使通讯也在日益火爆着。

       Xmpp  不多说,百度谷歌一大把。 (密聊好像就是用这个。我不是很确定。)

       服务器端采用openfire

        客户端 用smack    

       下面开始,只做客户端, 

  

            首先创建连接,就和我们创建DBHelper 连接类差不多。

                

            

        public static final String PASSWORD = "123456"; // 密码

	public static final String VERSIONNAME = "android1.0"; // 版本号

	static Connection xConnection;

	/**
	 * 创建连接
	 * 
	 * @param userid
	 * @param password
	 * @throws XMPPException
	 */
	public static Connection xmppConn(Context context) throws XMPPException
	{
		// xConnection.isConnected() == false

		if (xConnection == null)
		{
			final ConnectionConfiguration connectionConfig = new ConnectionConfiguration("服务器地址", 5222);
			connectionConfig.setCompressionEnabled(false);
			connectionConfig.setSASLAuthenticationEnabled(false);
			XMPPConnection.DEBUG_ENABLED = true;
			xConnection = new XMPPConnection(connectionConfig);
		}
		return xConnection;

	}

 

             好了,这样算是创建好连接了, 下一步就是登录。 

                

final Connection connection = MyXMPPConnection.xmppConn(getApplicationContext());   
    // 得到连接对象 

  final boolean isConn = connection.isConnected();  //是否连接成功 成功返回true,失败false 

     if (isConn == false)   // 
            {
                connection.connect();  //  这里才是连接
                  // 这里首先去登录,如果登录失败,然后再去注册一个,接着登录
                connection.login("用户名", MyXMPPConnection.PASSWORD, MyXMPPConnection.VERSIONNAME); // 登录 参数说明(用户名,密码,版本号)
                if (connection.isAuthenticated() == false)
                {
                    connection.getAccountManager().createAccount("用户名", MyXMPPConnection.PASSWORD); // 注册
                    connection.login("用户名", MyXMPPConnection.PASSWORD, MyXMPPConnection.VERSIONNAME); // 登录
                }

          用户登录成功,接下来创建聊天室 。

             

        ChatManager  chatManager = conncetion.getChatManager();
        String   hostName = connection.getServiceName();   
        Chat newChat = chatManager.createChat(UserId + "@" + hostname + "/" + MyXMPPConnection.VERSIONNAME, msgListender);  // 参数说明,聊天对象userid,消息监听器
        newChat.sendMessage("我草,你日吗?");
		
   

  这样就可以发送一条消息了。         

 只发不收不地道,下来添加接收消息监听器     :

  其实就是上面创建聊天室的第二个参数,只需要写完它就OK了。

 

class msgListener implements MessageListener
	{
		public void processMessage(Chat arg0, org.jivesoftware.smack.packet.Message arg1)
		{
			// TODO Auto-generated method stub 
			 if (arg1 instanceof org.jivesoftware.smack.packet.Message)
			 {
				  
				  org.jivesoftware.smack.packet.Message messageIQ= (org.jivesoftware.smack.packet.Message)arg1; 
				    if (((org.jivesoftware.smack.packet.Message) arg1).getType()==Type.chat)
					{ 
                                           //假如这个监听放在对方那边,不出意外这里body体里面就会是 --- 我草,你日吗 ?
                                         String  msgContext = messageIQ.getBody(); // 消息体  
					 String msgFromAll = messageIQ.getFrom(); // 发送人
				         String msgToAll = messageIQ.getTo();   // 接收人
                                       }
			     }
			 }

	}  


            写完这些就可以实现基本的文字聊天,当然发表情也是可以的。

            

              也是刚开始学这一块。

              说的不对的地方别望大神别拍我。 

              并真心希望大神指导。

                小弟谢过了。   

        

       

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值