文档章节

Android之基于百度云推送IM

SuShine
 SuShine
发布于 2015/06/25 15:28
字数 1019
阅读 16
收藏 0
点赞 0
评论 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

© 著作权归作者所有

共有 人打赏支持
SuShine
粉丝 118
博文 435
码字总数 88625
作品 0
青岛
后端工程师
APP中实现IM功能,有哪些现成的方案可以直接集成使用?

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

weifensky ⋅ 2013/09/27 ⋅ 2

安卓巴士联手Mob产品分享会精彩回顾

上周六(6月9日),由Mob和安卓巴士联合举办的Mob产品分享会在上海游族大厦完美落幕。 (大合影) 活动由Mob的五位PM担任主讲嘉宾,定向邀请了12位VIP用户,共同探讨了解MobSDK产品。 活动开...

逆鳞龙 ⋅ 06/14 ⋅ 0

直播,音视频编码器和解码器(EasyDarwin)-Android

使用摄像头采集视频数据,并通过MediaCodec进行H264编码,之后打包成RTSP格式并上传的。 TextuewView也提供了一个setTransform方法,该方法接收一个matrix参数,使用该参数对当前的渲染内容进...

shareus ⋅ 05/18 ⋅ 0

Android Push开源解决方案

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

雨焰 ⋅ 2012/10/23 ⋅ 4

Android Push 开源方案解析

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

极光推送 ⋅ 2012/11/30 ⋅ 85

腾讯技术分享:Android版手机QQ的缓存监控与优化实践

本文内容整理自公众号腾讯Bugly,感谢原作者的分享。 1、问题背景 对于Android应用来说,内存向来是比较重要的性能指标。内存占用过高,会影响应用的流畅度,甚至引发OOM,非常影响用户体验。...

JackJiang2011 ⋅ 04/08 ⋅ 0

Google让Chromebook用户在Chrome OS中管理所有Android文件

Google Chromium开发者FrançoisBeaufort透露,Chrome操作系统团队正计划在Files应用中让Chromebook设备管理所有的Android文件。被称为“Android文件”的新功能已在Chrome OS Dev频道中实施,...

稿源:cnBeta.COM ⋅ 06/04 ⋅ 0

基于 MVP 架构使用Android通用开发框架快速开发微博项目实战

课程目标: 基于 MVP 架构使用Android通用开发框架快速开发微博项目实战 适应人群: 适合大学生和初中级android开发工程师,可以系统化的微博类APP的开发,系统化掌握商业化项目的开发。* 不...

13122542396 ⋅ 05/25 ⋅ 0

Android:手把手教你学会使用Google出品的序列化神器Protocol Buffer

前言 习惯用 数据存储格式的你们,相信大多都没听过 其实 是 出品的一种轻量 & 高效的结构化数据存储格式,性能比 真的强!太!多! 由于 出品,我相信已经具备足够的吸引力 今天,我将详细介...

Carson_Ho ⋅ 04/16 ⋅ 0

极光推送IM使用问题

@极光推送 你好,想跟你请教个问题:我想问下极光推送IM怎么用的,我下载的Demo好像运行不了 一: 错误信息:java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{io...

小杰123 ⋅ 2016/07/19 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iExec Blockchain Marketplace for Cloud

iExec Releases the First-Ever Blockchain Marketplace for Trading Cloud Computing Berlin, Germany, May 29, 2018. iExec has released its blockchain-based decentralized cloud marke......

openthings ⋅ 10分钟前 ⋅ 0

OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《29》- 未完成乐队 《29》- 未完成乐队 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :#看球提醒# 02:00 巴西v...

小小编辑 ⋅ 30分钟前 ⋅ 11

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部