Android smack
来源:互联网 发布:processing软件 编辑:程序博客网 时间:2024/06/05 19:51
登陆:
if (!ConnectionUtils.getConnection().isConnected()) return false;if (ConnectionUtils.getConnection().isAuthenticated()) { return true;} else {// 用户登录ConnectionUtils.getConnection().login("username","password"); return ConnectionUtils.getConnection().isAuthenticated();}
读取消息:
PacketListener和PacketCollector。
都使用PacketFilter
PacketFilter packetFilter = new AndFilter(new PacketIDFilter(jp.getPacketID()), new PacketTypeFilter(IQ.class)); // 监听所有的包 con.addPacketListener(new PacketListener() { public void processPacket(Packet packet) { if (packet instanceof MyIQ) { MyIQ iq = (MyIQ) packet; if (iq.getType() == IQ.Type.RESULT) { System.out.println("返回内容:"+ iq.toXML()); } } else { System.out.println("其他消息:"+packet.toXML()); } } }, packetFilter); //PacketCollector PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class)); PacketCollector collector = ConnectionUtils.getConnection().createPacketCollector(filter); ConnectionUtils.getConnection().sendPacket(reg); result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
添加好友
在申请添加一个好友,当对方Roster.setDefaultSubscriptionMode(SubscriptionMode.manual)时,此时添加的好友为“挂起”状态。
对方设置监听
PacketFilter filter = new PacketFilter() { @Overridepublic boolean accept(Packet packet) {if (packet instanceof Presence) { Presence presence = (Presence) packet;if (presence.getType().equals(Presence.Type.subscribe)) {return true; } }return false; } };
允许添加好友则回复消息
Presence presence = new Presence(Presence.Type.subscribed); presence.setTo(packet.getFrom()); ConnectionUtils.getConnection().sendPacket(presence);此时邀请人的好友状态为to。
而被添加的user的subscription状态为from。
如果要改为both。
被邀请人应当也发送一个邀请请求。
Presence subscription = new Presence(Presence.Type.subscribe);subscription.setTo(packet.getFrom());ConnectionUtils.getConnection().sendPacket(subscription);
申请创建联系人 : createEntry(String user, String name, String[] groups)
删除联系人 : removeEntry(RosterEntry entry)
.... 后续
- Android smack
- android-smack
- Smack for Android
- Android openfire smack 源码
- Android openfire smack 源码
- Android smack send emoji
- Android+Smack+Openfire
- Android Studio 使用smack
- Android版的Smack:aSmack
- Android版的Smack:aSmack
- 用Smack开发Android即时通讯
- Smack-Android客户端入门一
- smack android集成问题记录
- smack
- smack
- smack
- Smack
- smack
- android中dip、dp、px、sp和屏幕密度
- 3ds为挤出界面赋予材质
- WPF 处理RichTextBox, ListView等的Scroll Bar 事件(event)
- 10 Java中的多态
- 人人网架构
- Android smack
- JDK中的URLConnection参数详解
- zk excel的导出
- Cookie&Session
- POj 2823 单调队列 / 优先队列
- Android开发之--脚本编程
- 将Chrome浏览器网页背景改成豆绿色
- MFC的消息处理函数
- 硕士论文要求