偶然的一天,发现百度出了一个云推送包,想想百度的服务器还是比较靠谱的说,怎么着也比我们自己搭建的服务器要稳定,于是乎,我就花了几天时间,写了一个小小的聊天工具,权当是练手。主要思路是:客户端的聊天内容通过json格式封装(包含聊天内容、发送人信息)之后,HTTP请求百度服务器,即请求把该消息发送到指定id的用户,请求成功之后,百度服务器就把我们的信息转发给指定的用户,对应用户再解析json格式的信息,就可以知道该消息来自何处,以及消息内容。好了,废话不多说,我们先来看看这个小工具的效果图,由于时间比较仓促,bug和错误在所难免,希望朋友们耐心一点,可以自己调试调试,或者把错误信息发送到我邮箱:way.ping.li@gmail.com。谢谢大家,如果我收到邮件,会及时处理的,再次表示感谢!!!

ChangeLog:

1.增加手势返回。可以手势拖动Activity实现返回,是本次最大的更新,仿ios7.0效果。

2.使用全新的应用Logo,不再使用百度云推送的Logo。

3.使用全新的Splash界面,不再使用QQ界面。

4.其他一些小bug的修复。

5.未升级最新的百度云推送SDK,敬请悉知。

新功能:1.横向滑动刷新以及好友分组高仿QQ分组方式。2.每个好友以及分组增加长按点击事件。如下图所示:

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

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.util:这里是我放一些工具类的包,比如Log封装,Toast封装,网络判断,发送消息异步任务,Dialog等等。。。说明一下,这里的JsonUtil是我加工消息内容和解析消息的工具,我把每一条消息封装称json格式,包含发送人的nick、id、头像、发送时间以及消息内容等信息,然后再发送出去,对方收到之后再解析,就可以知道这消息是从何处发送过来的了。

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

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

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

朋友下源码去看看吧,另外分享一下我的小金库(今年整理的代码):http://url.cn/NW2qn7

是保存在腾讯微云。

基于android百度云推送务设计,Android之基于百度云推送IM相关推荐

  1. 便签 java_基于安卓Android的便签笔记APP设计(Android studio)

    基于安卓Android的便签笔记APP设计(Android studio)(论文9000字,程序代码) 摘要:本文介绍了便签的发展史.基础操作流程以及便签的具体功能,提出了基于Android的便签AP ...

  2. android平台上的sprite,tilelayer设计,android平台上的sprite,tilelayer设计

    android平台上的sprite,tilelayer设计 Android 没有提供 javaMe 里面的 Sprite, TileLayer 等,但自己可以设计,为图形处理建立一个基本的框架,同时可 ...

  3. 基于android平台的条码扫描软件的设计与实现,基于android平台的条码扫描软件的设计与实现...

    摘要: 条码技术是随着电子计算机技术和图像编码理论不断发展进步而产生的一种自动识别技术,它以数据采集速度快,使用方便可靠,成本低等优点在各行各业的诸多领域都有应用.在工商业,仓储物流,邮政通信,交通运 ...

  4. 基于android平台的手机游戏的设计与实现,基于Android平台手机游戏社区的设计与实现...

    摘要: 在移动终端性能的不断提高和移动互联网的不断普及,SNS社区以及不再只停留在电脑上,逐渐的走进了手机里,与以往的社区相比,手机社区有更好的实时性,以及能够更方便的提供LBS服务功能.目前每个社区 ...

  5. 云平台编程与开发(六):物联网云平台的架构设计设想(基于X5Cloud云平台)

    1. 物联网概述 根据现在较通用的定义,物联网是指通过射频识别(RFID).红外感应器.全球定位系统.激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能 ...

  6. 基于android智能手机的隐私管理系统的设计与实现,基于Android的智能手机求助系统的设计与实现...

    摘要: 伴随着4G时代的飞速发展,越来越多的人使用智能手机,智能手机已经不仅仅是一个娱乐的玩具,而逐渐成为一种为人们的日常生活提供各种服务的渠道和工具.现在人们越来越重视自身的安全意识,特别是诸如老人 ...

  7. 基于android平台语音日程软件的设计与实现,基于Android平台语音日程软件的设计与实现...

    摘要: 随着移动互联网的发展,智能手机已成为最重要的终端设备,由此产生了以Android平台为代表的新一代操作系统,基于该平台的分布式应用成为移动通信技术领域的研究热点.由于基于Android手机桌面 ...

  8. 基于单片机控制的数字温度计课程设计c语言,基于单片机的数字温度计课程设计.doc...

    基于单片机的数字温度计课程设计.doc 目录1 绪论 .11.1 设计背景 .11.2 设计要求 .11.3 设计思路 .12 系统硬件设计 12.1 设计总框图 12.2 各模块功能 .22.3 设 ...

  9. android音乐播放器主页面设计,Android项目之旅二 简易Mp3播放器页面设计

    上面我们给大家把项目的环境搭建好了,现在我们就打开我们的Eclipse吧,至于android开发环境的搭建,可以在我的博客中找到相关的资源哦,这里就不给大家再重复了,选择File-->new-- ...

最新文章

  1. Ecplise 恢复刚刚删除的文件
  2. Dockerfile基本语法
  3. 04.Beetl常用内置函数以及安全输出---《Beetl视频课程》
  4. Mount挂载命令使用方法
  5. java实践_java基础实践
  6. u盘efi分区删除方法
  7. 苹果开发者账号注册、管理注意事项
  8. Python 获取当天零点时间戳
  9. IETester更新至最新版已经兼容Windows7(附下载地址及Debugbar插件)
  10. 6、淘宝双11数据分析与预测
  11. Utility工具类:
  12. 可视化 | Python时间序列化NBA球星赛季数据
  13. 树莓派学习记录1-树莓派系统烧录与无屏幕网线连接开机
  14. 手机选择之我见——需求分析
  15. 【案例练习】17个华丽的UI效果的实现 ,激发你的创造灵感
  16. 新能源行业商业采购协同系统:赋能新能源行业采购业务,提升产业协同
  17. 用一生的漫长,等待最初的绿色
  18. css:box-shadow实现单边,多边阴影
  19. Gradle学习之Android-DSL AppExtension篇
  20. python入门指南by许半仙百度云-Python入门指南 作者:许半仙(4)

热门文章

  1. Unity相机自由移动脚本
  2. jsp中的EL表达式用法
  3. 电影票API接口及公众号对接H5
  4. 统计量的标准误的估计(bootstrap方法)
  5. 交公粮了:十一在家我都逛了哪些技术网站?
  6. LiteOS 互斥锁
  7. 对box-sizing border-box的理解:
  8. 十个笑话启迪夫妻关系
  9. 便携式太阳能电池板给12V伏锂电池组充电
  10. ANTLR 权威参考 第一章 开始antlr