安卓聊天室
来源:互联网 发布:淘宝怎么设置支持花呗 编辑:程序博客网 时间:2024/06/04 17:43
android IM的实现:聊天室(采用smack API)
加入聊天室,获取聊天室的人数,监听消息的发送与接收,监听聊天室的动态:
监听好友发送来的加入聊天室的邀请:
分类: Android2011-07-18 10:416061人阅读评论(17)收藏举报
聊天smackapiandroidimstring
由于Smack的API版本不一样吧,以为会有个对应的GroupChat来处理聊天室(跟Chat处理普通聊天一样).可我错了,我没有找到这个类
翻了下API,最后发现只有采用MultiUserChat
获取服务器端聊天室信息:
- publicstaticvoid getConferenceRoom()throws XMPPException {
- if (!MultiUserChat.getHostedRooms(mAdaptee,"127.0.0.1").isEmpty()) {
- for (HostedRoom k : MultiUserChat.getHostedRooms(mAdaptee,
- "127.0.0.1")) {
- for (HostedRoom j : MultiUserChat.getHostedRooms(mAdaptee,
- k.getJid())) {
- RoomInfo info2 = MultiUserChat.getRoomInfo(mAdaptee,
- j.getJid());
- if (j.getJid().indexOf("@") >0) {
- System.out.println("聊天室的名称是: " + j.getName()
- + "\n JID是:" + j.getJid());
- System.out.println("aaNumber of occupants:"
- + info2.getOccupantsCount());
- System.out
- .println("聊天室的描述:" + info2.getDescription());
- System.out.println("聊天室的主题:" + info2.getSubject());
- System.out.println("聊天室的JID:" + info2.getRoom());
- }
- }
- }
- }
- }
public static void getConferenceRoom() throws XMPPException {if (!MultiUserChat.getHostedRooms(mAdaptee, "127.0.0.1").isEmpty()) {for (HostedRoom k : MultiUserChat.getHostedRooms(mAdaptee,"127.0.0.1")) {for (HostedRoom j : MultiUserChat.getHostedRooms(mAdaptee,k.getJid())) {RoomInfo info2 = MultiUserChat.getRoomInfo(mAdaptee,j.getJid());if (j.getJid().indexOf("@") > 0) {System.out.println("聊天室的名称是: " + j.getName()+ "\n JID是:" + j.getJid());System.out.println("aaNumber of occupants:"+ info2.getOccupantsCount());System.out.println("聊天室的描述:" + info2.getDescription());System.out.println("聊天室的主题:" + info2.getSubject());System.out.println("聊天室的JID:" + info2.getRoom());}}}}}
加入聊天室,获取聊天室的人数,监听消息的发送与接收,监听聊天室的动态:
- publicstaticvoid joinRoom()throws XMPPException{
- MultiUserChat multiUserChat = new MultiUserChat(mAdaptee,"minzujy@conference.127.0.0.1");
- multiUserChat.join("NiMei","");
- multiUserChat.sendMessage("send message successful");// 发送消息
- System.out.println(multiUserChat.getOccupantsCount());// 聊天室人数
- Iterator<String> it = multiUserChat.getOccupants();
- while(it.hasNext()){
- // minzujy@conference.127.0.0.1/sushuo1
- // minzujy@conference.127.0.0.1/guohai
- System.out.println(StringUtils.parseResource(it.next()));// 聊天室成员名字
- }
- multiUserChat.addMessageListener(new PacketListener() {
- @Override
- publicvoid processPacket(Packet packet) {
- Message message = (Message)packet;
- //接收来自聊天室的聊天信息
- System.out.println("收到聊天室消息=>" + StringUtils.parseResource(message.getFrom()) +": "+message.getBody());
- }
- });
- multiUserChat.addParticipantStatusListener(new ParticipantStatusListener() {
- @Override
- publicvoid voiceRevoked(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid voiceGranted(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid ownershipRevoked(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid ownershipGranted(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid nicknameChanged(String participant, String newNickname) {
- // TODO Auto-generated method stub
- System.out.println(StringUtils.parseResource(participant) +" is now known as "+ newNickname +".");
- }
- @Override
- publicvoid moderatorRevoked(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid moderatorGranted(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid membershipRevoked(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid membershipGranted(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid left(String participant) {
- // TODO Auto-generated method stub
- System.out.println(StringUtils.parseResource(participant) +" has left the room.");
- }
- @Override
- publicvoid kicked(String participant, String actor, String reason) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid joined(String participant) {
- // TODO Auto-generated method stub
- System.out.println(StringUtils.parseResource(participant) +" has joined the room.");
- }
- @Override
- publicvoid banned(String participant, String actor, String reason) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid adminRevoked(String participant) {
- // TODO Auto-generated method stub
- }
- @Override
- publicvoid adminGranted(String participant) {
- // TODO Auto-generated method stub
- }
- });
- }
public static void joinRoom() throws XMPPException{MultiUserChat multiUserChat = new MultiUserChat(mAdaptee, "minzujy@conference.127.0.0.1");multiUserChat.join("NiMei", "");multiUserChat.sendMessage("send message successful");// 发送消息System.out.println(multiUserChat.getOccupantsCount());// 聊天室人数Iterator<String> it = multiUserChat.getOccupants();while(it.hasNext()){// minzujy@conference.127.0.0.1/sushuo1// minzujy@conference.127.0.0.1/guohaiSystem.out.println(StringUtils.parseResource(it.next()));// 聊天室成员名字}multiUserChat.addMessageListener(new PacketListener() {@Overridepublic void processPacket(Packet packet) {Message message = (Message)packet;//接收来自聊天室的聊天信息System.out.println("收到聊天室消息=>" + StringUtils.parseResource(message.getFrom()) + ": "+message.getBody());}});multiUserChat.addParticipantStatusListener(new ParticipantStatusListener() {@Overridepublic void voiceRevoked(String participant) {// TODO Auto-generated method stub}@Overridepublic void voiceGranted(String participant) {// TODO Auto-generated method stub}@Overridepublic void ownershipRevoked(String participant) {// TODO Auto-generated method stub}@Overridepublic void ownershipGranted(String participant) {// TODO Auto-generated method stub}@Overridepublic void nicknameChanged(String participant, String newNickname) {// TODO Auto-generated method stubSystem.out.println(StringUtils.parseResource(participant) + " is now known as "+ newNickname +".");}@Overridepublic void moderatorRevoked(String participant) {// TODO Auto-generated method stub}@Overridepublic void moderatorGranted(String participant) {// TODO Auto-generated method stub}@Overridepublic void membershipRevoked(String participant) {// TODO Auto-generated method stub}@Overridepublic void membershipGranted(String participant) {// TODO Auto-generated method stub}@Overridepublic void left(String participant) {// TODO Auto-generated method stubSystem.out.println(StringUtils.parseResource(participant) + " has left the room.");}@Overridepublic void kicked(String participant, String actor, String reason) {// TODO Auto-generated method stub}@Overridepublic void joined(String participant) {// TODO Auto-generated method stubSystem.out.println(StringUtils.parseResource(participant) + " has joined the room.");}@Overridepublic void banned(String participant, String actor, String reason) {// TODO Auto-generated method stub}@Overridepublic void adminRevoked(String participant) {// TODO Auto-generated method stub}@Overridepublic void adminGranted(String participant) {// TODO Auto-generated method stub}});}
监听好友发送来的加入聊天室的邀请:
- MultiUserChat.addInvitationListener(mAdaptee, new InvitationListener() {
- @Override
- publicvoid invitationReceived(org.jivesoftware.smack.Connection conn, String room,
- String inviter, String reason, String password, Message message) {
- MultiUserChat multiUserChat = new MultiUserChat(conn, room);
- System.out.println("收到来自 "+inviter+" 的聊天室邀请。邀请附带内容:"+reason);
- try {
- multiUserChat.join("HMM", password);
- } catch (XMPPException e) {
- System.out.println("加入聊天室失败");
- e.printStackTrace();
- }
- System.out.println("成功加入聊天室");
- multiUserChat.addMessageListener(new PacketListener() {
- @Override
- publicvoid processPacket(Packet packet) {
- Message message = (Message)packet;
- //接收来自聊天室的聊天信息
- System.out.println(message.getFrom() + ":" + message.getBody());
- }
- });
- }
- });
0 0
- 安卓聊天室
- 安卓 socket简易聊天室
- 蓝牙接收和发送数据源码(聊天室)安卓源码
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- 聊天室
- Xen、Citrix XenServer、XCP
- Spring整合Quartz实现定时任务调度
- ESB (Enterprise Service Bus)入门知识
- 给定字典做分词
- Swing编程方面步骤之二各个按钮触发事件的处理原理
- 安卓聊天室
- poj1236 Network of Schools(强连通-缩点)
- 呵呵,大家好,
- 表情插入
- DBA Scripts
- POJ2034 Anti-prime Sequences初等数论
- hdu-3926 Hand in Hand 并查集
- 【Kali_017】软件包管理synaptic
- 再谈浏览器兼容性测试