(能用得上话的话求点赞=-=,我表达不好的话跟我说哦)

上一次我们拿到了服务器端的组数据和用户信息,这就可以为我们日后使用好友系统打下基础了!

但是光是拿到了这些东西我们怎么能够满足呢?我们一个即时通讯软件最重要的不就是要能够通讯么!所以我们下一步就要接受别人发来的数据。
 public static void findMan(){
System.out.println("--------find start----------");
Roster roster = connect.con.getRoster();        //Roster表示一个用户的所有好友清单以及申请加好友的用户清单
Collection<RosterGroup> entriesGroup = roster.getGroups();//获得组信息
System.out.println("team:"+entriesGroup.size());     
for(RosterGroup group: entriesGroup){
Collection<RosterEntry> entries = group.getEntries();
System.out.println("--------groupName--------"+"\n"+group.getName());//循环打印组名和人名
for (RosterEntry entry : entries) {
System.out.println("name:"+entry.getName());
}
}
System.out.println("--------find end--------");
        ChatManager chatManager = connect.con.getChatManager();
         chatManager.addChatListener(new MyChatManagerListener());

注意到我们在上回的工具类的里面的findMan()函数里面添加了两行,这两行的功能就是注册了一个消息的监听器并把它设置为监听状态。但这个MyChatManagerListener()咱们还没有写哦!

 static class MyChatManagerListener implements ChatManagerListener {
public void chatCreated(Chat chat, boolean arg1) {
chat.addMessageListener(new MessageListener(){
@Override
public void processMessage(Chat chat, Message msg) {
android.os.Message m=handler.obtainMessage();
m.obj=msg;
m.sendToTarget();//送入handle
}
});
}
}

我们重写了MyChatManagerListener()实现一个ChatManageListener()的接口,在里面写一个聊天创建的函数添加监听,新建一个Message(这个Message是系统自带的)把接收收到的msg(这个Message并不是系统自带的)放进去传入Handle进行一些显示的操作。

    private static Handler handler = new Handler(){
public void handleMessage(android.os.Message m) {
Message msg=new Message();
msg=(Message) m.obj;
String[] message=new String[]{ msg.getFrom(), msg.getBody()};
System.out.println("==========收到消息 From:==========="+message[0].toString());
System.out.println("==========收到消息 say:===========" + message[1].toString());
}
};

当Message送入handle后在新建一个不是系统自带的Message把接到东西放去然后新建字符串数组,把第一个放入头(传入的用户名),第二个放入体(发送的用户信息)并且打印出来在日志中。

我们先用服务器来试一下,openfire有一个服务器发送消息的功能,我们发送“蛤蛤”好了!

于是我们就能在服务器里面看到这条服务器广播了!

openfire的官网里面还能找到这样的一个软件,也要下载安装,对于测试很有帮助,还有就是其实我们的开发就是在实现一个Spark的安卓版而已

我们在用这个来测试一下

效果就出来了,我们不但能接收服务器的广播,也能接受其他的

用户给我们发送的数据!

今天就写到这里了,在这里我们实现了如何接收其他人的发送数据,在下一个文章中我们要实现如何发送数据,这就是我们即时通讯的功能的初步实现了,好期待啊!

(能用得上话的话求点赞=-=,我表达不好的话跟我说哦)

openfire+asmack搭建的安卓即时通讯(三) 15.4.9的更多相关文章

  1. openfire+asmack搭建的安卓即时通讯(一) 15.4.7

    最进开始做一些android的项目,除了一个新闻客户端的搭建,还需要一个实现一个即时通讯的功能,参考了很多大神成型的实例,了解到operfire+asmack是搭建简易即时通讯比较方便,所以就写了这篇 ...

  2. openfire+asmack搭建的安卓即时通讯(七) 15.5.27

    本地化之章! 往期传送门: 1.http://www.cnblogs.com/lfk-dsk/p/4398943.html 2.http://www.cnblogs.com/lfk-dsk/p/441 ...

  3. openfire+asmack搭建的安卓即时通讯(四) 15.4.10

    之前的教程不知道你们成功了没,,,没成功可以问我啊=-= 第四篇博文是要实现发送消息的功能. 首先在我们登陆后的活动的layout里添加这样的两个控件,一个EditText和一个Button用于发送数 ...

  4. openfire+asmack搭建的安卓即时通讯(二) 15.4.9

    上期没有放成果图呢!忘了=-=,这就是上次的成果图,textview里面会显示登陆的名字(这个是默认管理员帐号=-=) 好吧,登陆了服务器我们就有了交互的功能啦可以说是前进了一大步呢!下面能我们就要试 ...

  5. openfire+asmack搭建的安卓即时通讯(六) 15.4.16

    啊啊啊啊啊啊啊啊,这东西越做越觉得是个深坑啊! 1.SharedPreferences.Editor的密码保存和自动登录: 首先还是从主界面开始,因为要提升一下用户体验自然要加入保存密码和自动登录的功 ...

  6. openfire+asmack搭建的安卓即时通讯(五) 15.4.12

    这一篇博客其实是要昨天写的,但昨天做了作修改就停不下来了,这次的修改应该是前期开发的最终回了,其余的功能有空再做了,下周可能要做一些好玩的东西,敬请期待! 1.修改下Logo:(Just We) ht ...

  7. Openfire XMPP Smack RTC IM 即时通讯 聊天 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. XMPP(三)-安卓即时通讯客户端

    由于时间原因,所以更新比较慢 ,还请大家谅解,此次是对上篇文章中的安卓客户端初级版本进行的一次更新优化,在这次更新后,就有那么一点样子了,可以拿的出手了,呵呵,还在关注的同学也可以及时下载更新.此次主 ...

  9. 急急如律令!火速搭建一个C#即时通信系统!(附源码分享——高度可移植!)

    (2016年3月更:由于后来了解到GGTalk开源即时通讯系统,因此直接采用了该资源用于项目开发,在此对作者表示由衷的感谢!) —————————————————————————————————— 人 ...

随机推荐

  1. [水]用vb写了个PCB

    这学期我们学操作系统,所以得写个PCB. 于是我借鉴了一下windows的PCB,写了这个 Imports System.Runtime.InteropServices ''' <summary ...

  2. knockout的依赖属性dependentObservable和observable的监控的使用

    1.Knockout是在下面三个核心功能是建立起来的:监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模 ...

  3. 百度地图API自定义地图

    http://api.map.baidu.com/lbsapi/creatmap/index.html http://developer.baidu.com/map/index.php?title=w ...

  4. map与vector---Email Aliases

    Description Polycarp has quite recently learned about email aliases. Of course, he used to suspect t ...

  5. 关于我的OI生涯(AFO){NOIP2016 后}

    这篇我就随意写啦~不用统一的“题解”形式.♪(^∀^●)ノ 也分好几次慢慢更吧~ 对于NOIP2016的总结,我本想善始善终back回,但是心情不足以支撑我,那就只能有始有终了......下面进入我的 ...

  6. 编写运行R脚本

    1.在后台运行R 1.1 创建file.R文件 1.2 在文件首行键入: #! /path/to/Rscript 1.3 在下面的行中,键入R代码 1.4 保存(记得有png(),jpeg(),... ...

  7. JavaScript焦点轮播图

    在慕课学习了JavaScript焦点轮播图特效,在此做一个整理. 首先是html结构,我用的是本地同文件夹下的三张图片,多出来的第一张(pic3副本)和最后一张图片(pic1副本)是为了实现无缝切换效 ...

  8. C++引用笔记

    1.什么是引用: 百度百科里的解释:引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.用&符号表示 举例: using namespace std; int _tmai ...

  9. 读取XML绑定TreeNode

    <asp:TreeView ID="treeview" OnClick="TreeViewCheckBox_Click()" runat="se ...

  10. Supermemo背单词7周年纪念

    从2007年2月1日开始,用Supermemo背单词7周年了,在2013年11月21日将单词表Reset,重新开始Review以前背过的单词,并慢慢加入听写VOA时遇到的生词.