Android XMPP实现IM 群聊功能
来源:互联网 发布:node v6.3.0 x64.msi 编辑:程序博客网 时间:2024/06/05 08:34
时间仓促,在此仅做一些流水式的记录,便于后面查询。主要的代码片段如下:
private MultiUserChat muc = null;private boolean isHistory = false;private int count = 0;private final int RECEIVE = 1;private Handler mGroupHandler = new Handler() {@Overridepublic void handleMessage(android.os.Message msg) {// TODO Auto-generated method stubswitch(msg.what) {case RECEIVE:Bundle bd = msg.getData();String from = bd.getString("from");String body = bd.getString("body");String msgHeader = "有新的群消息了";String msgContent = "\n" + from + ":" + "\n" + body;if (isHistory) {ToastDialog.showToast(ZhiyouHomepage.this, msgHeader + msgContent);}break;default:break;}}
};muc = new MultiUserChat(SmackImpl.mXMPPConnection, "xiaoyou@conference.job36-247-5");try {muc.join("EricSong");} catch (XMPPException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}muc.addMessageListener(new ChatPacketListener(muc));muc.addParticipantListener(new PacketListener() {@Overridepublic void processPacket(Packet arg0) {// TODO Auto-generated method stubMessage msg = (Message)arg0;ToastDialog.showToast(ZhiyouHomepage.this, msg.getFrom()+":"+msg.getBody());}});private class ChatPacketListener implements PacketListener {private String _number;private Date _lastDate;private MultiUserChat _muc;private String _roomName;public ChatPacketListener(MultiUserChat muc) {_number = "0";_lastDate = new Date(0);_muc = muc;_roomName = muc.getRoom();}@Overridepublic void processPacket(Packet packet) {System.out.println("消息格式:" + packet.toXML());Message message = (Message) packet;String from = message.getFrom();if (message.getBody() != null) {DelayInformation inf = (DelayInformation) message.getExtension("x", "jabber:x:delay");System.out.println("判断消息");if (inf == null && count >= 1) {System.out.println("新消息来了");isHistory = true;} else {System.out.println("这是旧的消息");}android.os.Message msg = new android.os.Message();msg.what = RECEIVE;Bundle bd = new Bundle();bd.putString("from", from);bd.putString("body", message.getBody());msg.setData(bd);mGroupHandler.sendMessage(msg);}count++;}}
0 0
- Android XMPP实现IM 群聊功能
- XMPP实现IM
- XMPP 实现IM(三)
- XMPP、Ejabberd类似微信即时通讯服务器(Android IM 服务端功能开发第一篇)
- xmpp IM
- WEB IM 实现原理 xmpp + comet
- Android IM、IOS IM、XMPP协议、即时消息推送解决方案
- 基于XMPP协议的Android IM
- 基于XMPP协议的Android IM研究
- 基于XMPP协议的Android IM研究
- 基于XMPP协议的Android IM研究
- 基于XMPP协议的Android IM研究
- 基于XMPP协议的Android IM研究
- 基于XMPP协议的Android IM研究
- xmpp openfire smack android IM demo
- 基于XMPP android IM 通信资料
- 基于XMPP协议的Android IM研究
- 基于XMPP协议的Android IM研究
- XMPP 发送语音的方法
- android之WebView控件的使用方法总结
- [Android]应用中实现清除缓存的功能
- Android ContentProvider使用注意事项
- 大站营销推广工具最好用的是什么?
- Android XMPP实现IM 群聊功能
- [Android]MUC获取服务器HostedRoom产生异常
- [Android]export aborted because fatal lint errors were found
- iOS 手机号码和邮箱的验证
- 树莓派3与虚拟机实现双网卡通讯
- [Android]如何修改android模拟器的IMEI号
- android:windowSoftInputMode属性使用
- Android App实现第三方微信登录
- Android 实现“调用手机已安装市场,进行软件评分的功能”