文档章节

Android之基于百度云推送IM

SuShine
 SuShine
发布于 2015/06/25 15:28
字数 1019
阅读 16
收藏 0

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

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

20130726最新版:http://download.csdn.net/detail/weidi1989/5817017

20131028更新到V1.2.3版本:http://download.csdn.net/detail/weidi1989/6465135(建议下载最新版本!)

开源中国托管地址:http://git.oschina.net/way/pushmessage


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/GUABFb

本文转载自:http://blog.csdn.net/sfshine/article/details/14226965

共有 人打赏支持
SuShine
粉丝 123
博文 504
码字总数 148653
作品 0
朝阳
后端工程师
Android Push开源解决方案

在 Android 上,因为 Google 自己实现的 Android 标配的 GCM (Google Cloud Messaging,原来叫 C2DM) 在国内基本不可用,所以,对于开发者来说,如果需要 Push功能,怎么样选择成为了一个问题...

雨焰
2012/10/23
0
4
Android P正式版即将到来:后台应用保活、消息推送的真正噩梦

1、前言 对于广大Android开发者来说,Android O(即Android 8.0)还没玩热,Andriod P(即Andriod 9.0)又要来了。 下图上谷歌官方公布的Android P发布路线图: Android P的最后一个开发者预...

JackJiang2011
08/02
0
0
Android消息推送完美方案

推送功能在手机应用开发中越来越重要,已经成为手机开发的必须。在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折。本文就是用来和大家共同探讨一种Android消息...

Yujan
2014/04/10
0
0
APP中实现IM功能,有哪些现成的方案可以直接集成使用?

APP支持android和iOS两个平台。 IM是该APP的几个一般功能,所以不想完全从头搭建IM服务器。 自己搜了一下,发现推聊是一个不错的备选,而且作者现在也把该项目开源了。 还有一个是基于百度的...

weifensky
2013/09/27
1K
2
Android基于XMPP Smack Openfire下学习开发IM

http://blog.csdn.net/h7870181/article/details/8653865 Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等 http://blog.csdn.net/h7870181/article/de......

天下杰论
2014/07/17
0
1

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
55分钟前
1
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部