偶然的一天,发现百度出了一个云推送包,想想百度的服务器还是比较靠谱的说,怎么着也比我们自己搭建的服务器要稳定,于是乎,我就花了几天时间,写了一个小小的聊天工具,权当是练手。主要思路是:客户端的聊天内容通过json格式封装(包含聊天内容、发送人信息)之后,HTTP请求百度服务器,即请求把该消息发送到指定id的用户,请求成功之后,百度服务器就把我们的信息转发给指定的用户,对应用户再解析json格式的信息,就可以知道该消息来自何处,以及消息内容。好了,废话不多说,我们先来看看这个小工具的效果图,由于时间比较仓促,bug和错误在所难免,希望朋友们耐心一点,可以自己调试调试,或者把错误信息发送到我邮箱: way.ping.li@gmail.com 。谢谢大家,如果我收到邮件,会及时处理的,再次表示感谢!!!
(源码是基于eclipse工程打包,utf-8编码,如果遇到导入出错的童鞋,提供一种解决方案:新建一个空工程即不创建Activity(src目录应该为空),把res、libs、assets、AndroidManifest.xml删除,然后把我的代码对应复制进来然后把编码方式改成UTF-8。如果还是不行,请自行找度娘或谷哥帮忙,谢谢合作!)
本文源码下载:    PushMessage.zip (2.14 MB, 下载次数: 1706) 
(推聊1.2.1,一次小小的更新:①.解决1.2.0版本libs目录下存在两个百度云推送包,导致编译不过的问题。
②.这次只打包了纯代码,请自己新建工程,然后将代码copy到工程中,同时注意编码方式改成UTF-8。 )

开源中国托管地址: http://git.oschina.net/way/pushmessage  (欢迎关注)
下面来看看效果图:
1.注册界面:

2.登录界面:

3.好友列表界面:

4.最近联系人界面:

5.右边设置界面:

6.好友列表左拉右拉刷新:

7.好友列表界面每个好友的点击事件处理:

8.聊天主界面:

9.表情滑动翻页效果是可以设置的,且设置界面是可手动滑动的:

10.最近会话列表界面,每个item可滑动删除:

11.通知栏挂机图标:

12.还有功能,请大家慢慢挖掘。

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

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,我就不多作解释了

android百度云推聊(转)相关推荐

  1. Android百度云推送接入,附完整代码

    1.创建应用获取api_key 百度云推送:http://push.baidu.com/ SDK下载:http://push.baidu.com/sdk/push_client_sdk_for_and ...

  2. 基于android百度云推送务设计,Android之基于百度云推送IM

    偶然的一天,发现百度出了一个云推送包,想想百度的服务器还是比较靠谱的说,怎么着也比我们自己搭建的服务器要稳定,于是乎,我就花了几天时间,写了一个小小的聊天工具,权当是练手.主要思路是:客户端的聊天内容 ...

  3. Android 高仿微信实时聊天 基于百度云推送

    一直在仿微信界面,今天终于有幸利用百度云推送仿一仿微信聊天了~~~ 首先特别感谢:weidi1989分享的Android之基于百度云推送IM ,大家可以直接下载:省了很多事哈,本例中也使用了weidi ...

  4. Android推送 百度云推送 入门篇

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/27231237 现在app基本都有推送的功能,于是看了下百度云的推送,官方文档和D ...

  5. 消息推送之百度云推送Android集成与使用方法

    这两天由于项目需要,研究了一下百度云推送,本来这事没什么多大工作量的,但注册百度开发者账户创建应用令我蛋疼菊紧了好一阵,这些东西做了对技术没啥提升,不做又不行,必经之路.好在我耗费了N多个毫毫秒秒后稀 ...

  6. android开发(25) - 推送的实现,使用百度云推送

    什么叫推送? 中文名称:推送 英文名称:push 定义:描述因特网内容提供者和因特网用户之间工作方式的术语."推送"指因特网内容提供者定期向预订用户"提供"数据 ...

  7. 开发笔记-Android消息推送骚操作:亚马逊-SNS对接FCM和百度云推送

    写在前面: 之前使用阿里云的服务器用阿里消息推送好好的,然后因为国外业务需要使用亚马逊服务器,阿里云推送也不能用,用亚马逊的 SNS (短信消息推送服务),SNS 可以对接多家推送平台,其中 Andr ...

  8. ecmobile实现支付宝支付和百度云推送遇到的问题及解决方案(android)

    1.首先检测支付账户是否开通快捷支付服务,如果开通后,那么公钥是否上传(支付宝问题一定要找支付宝客服解决,找其他人没有用,支付宝客服可以帮你分析底层原因) 2.修改app配置文件:alipay_cal ...

  9. 百度云推送-服务端 C# SDK

    思路: 1.公司有项目需要做android和ios手机端推送消息的功能: 2.没有接触过这方面的知识,一头雾水,开始在网上一顿搜,网上倒是有不少解决方案,首先搜的是android的解决方案,因为ios ...

最新文章

  1. web框架总结(django、flask)
  2. [译] 探究 Swift 中的 Futures Promises
  3. 【ESSD技术解读】ESSD Auto PL规格,引领IO性能弹性新方向
  4. 常用方法 DataTable转换为Entitys
  5. HTML5 API详解(16):web socket 全双工通信
  6. 酒驾、超速、加塞、路怒、拒载?来吧,我们专治各种不服
  7. linux下mysql连接错误解决
  8. Java集合Map与其子类回顾
  9. FD.io VPP 20.05 官方文档 总目录:用户文档+开发文档+命令行
  10. python打包exe黑框一闪而过,解决pyinstaller打包exe文件出现命令窗口一闪而过的问题...
  11. 生活需要懂点技巧…懂点策略…懂点计谋……【心灵悟语】
  12. 类似GoogleMap地图网站的简单实现(1)
  13. 人口matlab数学模型,基于MATLAB构建人口数学模型研究二胎开放对中国人口的影响...
  14. uniapp 自定义导航栏 动态显示或隐藏返回图标 以及buttons
  15. Linux内核设计与实现 第17章 设备与模块
  16. 【遇到的问题】VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
  17. 【火炉炼AI】机器学习023-使用层次聚类算法构建模型
  18. Android背景设置透明和半透明效果
  19. STM32F103C8T6多通道adc采集(3通道)
  20. 只能原地动的小鲤鱼/(ㄒoㄒ)/~~

热门文章

  1. IOS开发笔记之常用库索引
  2. 使用DaemonSet定制AKS工作节点
  3. Go 新关键字 any,interface 会成历史吗?
  4. Git clone Access denied Authentication failed
  5. 斐波那契数列指的是这样一个数列:1、1、2、3、5、8....输出前 N 个 斐波那契数,要求每行5个
  6. lol-登陆英雄联盟出错
  7. dbeaver安装和使用教程
  8. 七选五 排列组合+容斥/错排
  9. i913980hx和i913900hx区别 酷睿i9 13980hx和i9 13900hx选哪个
  10. [板子]Kruskal