偶然的一天,发现百度出了一个云推送包,想想百度的服务器还是比较稳定的,怎么着比我们自己搭建的服务器要稳定得多,于是乎,我就花了几天时间,写了一个小小的聊天工具,权当是练手,以后如果有应用仅仅是需要给用户推送消息,其实没必要自己搭建一个服务器了,就把百度的包加进去,可以省掉很多事情了。好了,废话不多说,我们先来看看这个小工具的效果图,由于时间比较仓促,bug和错误在所难免,希望朋友们耐心一点,可以自己调试调试,或者把错误信息发送到我邮箱:way.ping.li@gmail.com。谢谢大家,如果我收到邮件,会及时处理的,再次表示感谢!!!

本文码下载:http://download.csdn.net/detail/weidi1989/5546321

    

          

由于代码量还算比较大,我这里就不贴代码了,简单的说一下原理,先来看看源码的结构:

com.way.activity:理所当然的是所有Activity了,不多说。

com.way.adapter:这个是所有用到的适配器,比如ListView等等,也不多说。

com.way.app:这里我放了两个类,一个是Application,被我当作全局变量保存的工具类了,另外一个是接替系统异常处理的类,如果报错了,会把错误信息保存到文件,然后提示用户以邮件的形式发送给我,希望朋友们如果在遇到报错能不吝把log发送给我,谢谢!

com.way.baidupush.client:这里是接收百度服务器推送过来消息的广播接收者:PushMessageReceiver,所有消息都是通过这里接收的,另外我自己加了一个网络变化的接收,根据网络状况作出不同的处理。

com.way.baidupush.server:这里是发送消息的封装,我们要推送的消息是在这里通过HTTP请求百度服务器的,主要是一些HTTP请求的封装,看一下就知道了。

com.way.bean:这是bean包,不多说了,JAVA的基础知识,java bean。

com.way.common.uti:l这里是我放一些工具类的包,比如Log封装,Toast封装,网络判断,发送消息异步任务,Dialog等等。。。

com.way.db:这是是数据库操作包,有User、Message、最近通话都是保存在数据库的。

com.way.fragment:这里是放左右滑动菜单的左菜单和右菜单fragment。

接下来所有的包都是开源项目的view,我就不多作解释了。

朋友下源码去看看吧,另外分享一下我的小金库(今年整理的代码):http://share.weiyun.com/413f7e0dc1916f9ca51e861f403bd449

是保存在腾讯微云。

专门为程序员量身定做!程序员app

Android之消息推送聊天实现相关推荐

  1. Android端消息推送总结:实现原理、心跳保活、遇到的问题等

    前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什 ...

  2. 2015最新最全 Android 谷歌消息推送GCM 详细使用教程

    因为项目是非大陆的手机项目,所以当要使用到消息推送的时候,百度了一下,国内的消息方案可以是: 1.百度云推送.也确实很快就可以搭建客户端和服务端,加载他的sdk,大概花了半个小时,就可以在手机端收到推 ...

  3. 基于openfire+smack的Android、消息推送服务

    前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使 ...

  4. android热门消息推送横向测评![转]

    关于这个话题,已经不是什么新鲜事了.对于大多数中小型公司一般都是选择第三方的服务来实现.但是现在已经有很多提供推送服务的公司和产品,如何选择一个适合自己项目的服务呢?它们之间都有什么差别?在此为大家做 ...

  5. Android 生态消息推送平台介绍

    一.手机厂商平台 华为消息推送服务 华为推送(Push)是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,使应用可以将最新信息及时通知用户,从而构筑良好的用户关系,提升用户的感知和活跃 ...

  6. java集成极光推送实现Android的消息推送

    1.极光推送的思路就是,每一个app都有一个AppKey和Master Secret,这两个值是唯一的,也就是用来标识App的唯一信息,具体怎么获取,去看极光推送官网文档,这里就不在讲解.我们在极光开 ...

  7. Android之消息推送实现

    在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相 ...

  8. Android App消息推送 实现原理

    https://www.jianshu.com/p/b61a49e0279f 1.消息推送的实质 实际上,是当服务器有新消息需推送给用户时,先发送给应用App,应用App再发送给用户 2. 作用 产品 ...

  9. android热门消息推送横向测评!

    关于这个话题,已经不是什么新鲜事了.对于大多数中小型公司一般都是选择第三方的服务来实现.但是现在已经有很多提供推送服务的公司和产品,如何选择一个适合自己项目的服务呢?它们之间都有什么差别?在此为大家做 ...

最新文章

  1. python所有模块图解_Python模块结构和布局
  2. java.lang.IllegalArgumentException: pointerIndex out of range
  3. Git的思想和基本工作原理
  4. you do not have permission
  5. 如何找到Fiori Launchpad tile所属的catalog id
  6. Socket编程知识必学/SELECT 编程
  7. 安卓App的启动过程、安卓布局分类及布局和页面的关系
  8. 【HTML】建站成功默认页面
  9. 转 国内的go get问题的解决
  10. 【优化运行】基于matlab多目标粒子群算法求解冷热电联供综合能源系统运行优化问题【含Matlab源码 1747期】
  11. matlab 倒位序fft程序,[转载]MATLAB的一个FFT程序
  12. Clover Configurator 5.16.0.0 黑苹果引导四叶草配置工具
  13. IDEA更改中文字体
  14. 如何向面试官正确地提问?
  15. 服务器被入侵,执行了2个非常危险的命令
  16. position: sticky的使用
  17. rust键位失灵_用Rust写操作系统(四)——竞争条件与死锁
  18. CentOS7-查看和设置日期时间
  19. scratch做飞猫躲避飞龙的游戏
  20. 软件测试大环境求职难,跳槽难?我在大军中异军突起

热门文章

  1. 【百度领航团】小白零基础python学习笔记
  2. ByteBridge数据采集及标注平台
  3. 中国新能源汽车产业十四五应用建设与发展布局研究报告2022版
  4. 我们所说的A、B、C、D、E、F、G站你知道吗?
  5. pyinstaller打包exe(32位和64位)和运行太慢等问题解决
  6. 三轴桁架机械手上下料程序,用西门子smart200 ST40 脉冲控制3轴伺服程序,触摸屏程序,详细注释
  7. 机器学习A-Z~支持向量机
  8. 时间(年、月、日)的截取
  9. MySQL-数字格式化
  10. 逻辑漏洞连环击 攻击者盯上了 Eleven Finance 这块羊毛地