Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【5】消息发送,接收;修改心情的实现
来源:互联网 发布:商家给淘宝发票抬头 编辑:程序博客网 时间:2024/05/17 18:01
这一节就是消息发送与接收的实现了
接收消息主要代码:
//消息监听ChatManager cm = XmppConnection.getConnection().getChatManager();//发送消息给pc服务器的好友(获取自己的服务器,和好友)final Chat newchat = cm.createChat(pFRIENDID, null);cm.addChatListener(new ChatManagerListener() {@Overridepublic void chatCreated(Chat chat, boolean able) {chat.addMessageListener(new MessageListener() {@Overridepublic void processMessage(Chat chat, Message message) {//收到来自pc服务器的消息(获取自己好友发来的信息)if(message.getFrom().contains(userChat)){//获取用户、消息、时间、INString[] args = new String[] {userChat, message.getBody(), TimeRender.getDate(), "IN" };//在handler里取出来显示消息android.os.Message msg = handler.obtainMessage();msg.what = 1;msg.obj = args;msg.sendToTarget();}}});}});
发送消息主要代码:
//发送消息Button btsend = (Button) findViewById(R.id.formclient_btsend);btsend.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//获取text文本String msg = msgText.getText().toString();if(msg.length() > 0){//发送消息listMsg.add(new Msg(pUSERID, msg, TimeRender.getDate(), "OUT"));//刷新适配器adapter.notifyDataSetChanged();try {//发送消息newchat.sendMessage(msg);}catch (XMPPException e){e.printStackTrace();}}else{Toast.makeText(ChatActivity.this, "发送信息不能为空", Toast.LENGTH_SHORT).show();}//清空textmsgText.setText("");}});
以下是修改心情的实现,在自建客户端修改心情,Spark端会即时修改;
主要代码:
myMood = ((EditText)myMoodView.findViewById(R.id.myMood)).getText().toString().trim(); System.out.println("我更改的心情是:"+myMood); XmppService.changeStateMessage(connection, myMood); myStatusText.setText(myMood);
/** * 修改心情 * @param connection * @param status */ public static void changeStateMessage(final XMPPConnection connection,final String status) { Presence presence = new Presence(Presence.Type.available); presence.setStatus(status); connection.sendPacket(presence); }
以上就是我写的QQ的主要实现,个人的简单作品,不足之处请多执教,欢迎交流。源码下载地址:http://download.csdn.net/detail/yuanqihesheng/5322946
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【5】消息发送,接收;修改心情的实现
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【1】openfire服务端搭建
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【2】创建连接,登录openfire服务端
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【3】添加分组,添加好友,读取好友列表的实现
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【4】监听别人的添加好友申请与好友删除的设计
- Android基于XMPP Smack Openfire开发IM【三】客户端接收服务器发送的消息
- Android基于XMPP Smack Openfire开发IM【三】客户端接收服务器发送的消息
- openfire,XMPP,smack,android下离线消息的接收
- Android 使用Smack+openfire开发基于XMPP协议的聊天
- 基于XMPP协议(openfire服务器)的消息推送实现
- 基于XMPP协议(openfire服务器)的消息推送实现
- 基于XMPP协议(openfire服务器)的消息推送实现
- 基于XMPP协议(openfire服务器)的消息推送实现
- 基于XMPP协议(openfire服务器)的消息推送实现
- Android基于XMPP协议之实现即时通讯的原理
- openfire,smack,XMPP,android下的会议室,聊天室的实现
- 利用smack实现基于XMPP协议的简单通信demo
- Android之即时通讯之基于XMPP(一)-openfire服务端的安装和搭建
- Linux下进程学习
- ArcGIS 10.1 Engine Developer Kit 和 ArcGIS 10.1 Engine 快速入门指南
- vs2008快捷键极其技巧
- Mongodb自增ID的实现
- GIS Service Center – Download
- Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现【5】消息发送,接收;修改心情的实现
- Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)
- css中position属性(absolute|relative|static|fixed)概述及应用
- Android 线程池管理
- 解决svn "cannot set LC_CTYPE locale"的问题
- discuz+mysql,数据库连接数过大
- Android RIL总体架构介绍
- Android Binder设计(二)
- 为QQ空间推广整理思路