Android 即使通讯

来源:互联网 发布:学尤克里里下什么软件 编辑:程序博客网 时间:2024/04/25 04:34


 

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

       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() == falseif (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();   // 接收人                                       }     } }}  


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

            

              也是刚开始学这一块。

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

              并真心希望大神指导。

                小弟谢过了。   

        

       

 

原创粉丝点击