放大招了!基于Bmob的Android即时通讯应用源码

314
回复
206092
查看
  [复制链接]

5

主题

133

帖子

233

安币

攻城狮

Rank: 3Rank: 3

QQ达人

发表于 2014-7-7 16:41:50 | 显示全部楼层 |阅读模式
本帖最后由 go_ahead 于 2014-7-15 19:30 编辑



        很久没有发帖了,今天给大家分享系列干货:基于Bmob的Android即时通讯应用源码,以后每周都会更新sdk和最新的应用源码。目前Android版已更新到V1.0.7版本。IOS端已推出V1.0.0版本。
      一、已实现功能:

1、支持好友管理功能,包括添加好友、删除好友、获取好友列表,也可以与你已有的用户系统完全解耦;


2、支持的消息类型:纯文本、聊天表情、图片、位置、语音;


3、支持会话的本地化存储;


4、自定义消息处理机制;


5、同一账号多处登陆强制下线;


6、支持消息回执发送:已发送、已阅读两种状态;


7、支持黑名单管理功能;


8、支持消息重发机制,由网络或者其他原因导致的消息发送失败皆可点击重发;


9、支持地理位置交友。


二、后期更新计划:


1、增加在线、离线状态的显示;


2、增加群聊模式,方便群管理;


3、与IOS端兼容。


三、 应用详解:(由于此应用和sdk是基于Bmob的,如果对Bmob还不是很了解的,可移步Bmob官网:http://www.bmob.cn


1、注册:



2、登陆:




3、好友管理:


1)、查看好友列表





2)、添加好友、好友验证功能







3)、删除好友





4)、查看个人或者好友的详细资料







4、黑名单管理











5、本地会话:


1)、支持本地会话的展示




2)、删除本地会话




6、聊天:聊天页面支持下拉获取历史对话。


1)发送文本类型的消息(包括表情):





2)发送图片类型的消息:支持图片的缩放查看





3)发送位置类型的消息:支持当前位置的查看




4)发送语音类型的消息:支持录音和语音播放


         


   7、附近的人
   

如果以上那些还不能够吸引到你,那么下面这些干货相信能够让你眼前一亮!!!


四:看本应用源码能学到啥:

1、认识和深入了解Bmob

Bmob专注于帮助开发者解决后端云存储,无须搭建后台即可开发出一款高性能的app;


2、最新百度地图sdk的用法

获取用户的当前地理位置信息,当无法获取到地理位置的时候,采用反编码方式根据经纬度查询当前地理位置信息。(因为百度地图官网上的目前最新的sdk和我之前用过的很不一样,新版百度地图sdk进行了重构和优化,很多之前熟知的api都改掉了。不清楚的可以去瞧瞧。)


3、最简洁Viewholder的用法


4、最适合做聊天界面的MessageChatadapter的写法:根据不同的消息类型展示不用类型Item界面,利用getItemViewType和getViewTypeCount两个方法。同时和最简洁的Viewholder写法融合起来。


5、超简洁Adapter写法,支持在adapter内部添加点击事件,方便为ListView单个item中的控件添加点击事件


6、头像裁剪:

相信很多应用都会有用户的详细资料页面,关于用户头像部分无疑也是比较头疼的,目前大部分应用的头像部分会有两种方式:一种是利用系统的裁剪功能去获取用户头像,一种就是获取到图片或者照片的地址后自定义头像裁剪界面。而我这里提供了一种利用系统的裁剪功能来获取头像的写法,当然我写的这个并不是最好的。如果大家有比较好的写法可以和我交流下。


7、实现类似微信通讯录页面的效果,并支持对联系人的查找和过滤。


8、自定义Dialog写法,支持各种不同类型的dialog的显示。


9、利用Fragment创建类似Tabhost样式的布局。


......其他惊喜留待大家发现。


五、源码下载以及各版本更新日志:

1、V1.0.4_0627版本更新日志:


1)、新增地理位置交友.支持分页及是否显示附近的好友;

      2)、支持列表的分页查询;

      3)、修改其他bug


      2、 V1.0.5_0704版本更新日志:


       1)、新增对单一用户的语音消息的发送

       2)、修复分页查询附近的人和好友列表时出现重复数据的问题   

       3)、 修复其他bug。


     3、V1.0.6_0711版本更新日志(这一版本只对sdk进行部分重构,未增加新功能,主要的修改在于应用):     
     1)、解决当应用锁屏后在回到聊天页面时,新接收的消息不能显示的问题;

     2)、解决频繁接收到不属于本人好友的消息而导致页面不断刷新的问题;

     注:此问题是由于有人恶意使用sdk,为此,从这一版本之后,Bmob的ApplicationId不再公开,之前版本的ApplicationId也会回收,所以还在使用之前版本的童靴,请及时更新sdk并到Bmob官网申请新的ApplicationId,不知道申请流程的请猛击;

     3)、解决播放语音过程中出现的播放错误的问题;

     4)、修正发送图片的方式,重构部分代码;

     5)、添加开源协议Apache Licence 2。

     4、V1.0.7_0715版本更新日志:

     解决新用户注册失败的问题。

    注:

       1、源码在此(需下回复可见哦!):

   
游客,如果您要查看本帖隐藏内容请回复


2、若豆子不够或者不想花豆子的童靴,可以到下面的地址下载最新的SDK和Demo源码,以后也会第一时间在此更新最新的代码的:http://click.bmob.cn/?sid=e3babadcc9bfc44168a4


      六、 常见问题解答:


      很多童靴反应收不到消息在这里我说明几点:

      1、请使用最新版本的sdk,目前最新版是V1.0.7,因为新版本修复了一些导致收不到消息的bug,同时,从这一版本开始,后面的版本将不再公开ApplicationId,请到官网申请,这里附上:申请流程

      2、目前由于sdk正在不断完善的过程中,所以高版本与低版本是不兼容的,也就是说,用高版本sdk的应用向低版本sdk的应用发送消息是收不到的,甚至会导致程序奔溃。因此建议均使用最新版本sdk,等sdk稳定后,版本之间会做兼容的。

      3、在安装新版本sdk的应用之前,请卸载掉你手机里面的低版本sdk的应用,且卸载前点击清除缓存和清除数据两个按钮,之后再卸载,如果单纯的点击卸载的话,该应用内部会有些缓存保留,等安装新版本后会继续使用之前版本的一些数据,所以也会导致收不到消息。

      4、另外有人反映发送位置的时候,定位不了,谢谢这位童靴的问题哦,现说明下:
       1)、如果你是直接用我demo里面的bin目录下的apk的话,是不存在这个问题的,
       2)、如果你是下载demo之后直接运行的话,需要去重新去百度地图官网申请key,因为demo里面的可以是和我的eclipse绑定在一起的,相信做过百度地图开发的知道这是为什么。

     5、工程所用的编码格式是GBK,所以大家导入到eclipse的时候需要自行修改下编码方式哦!


    6、请大家用真机测试,模拟器是无法正常接收到消息的。














本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
匿名
匿名  发表于 2014-7-7 16:49:40
太贴心了,正在做一个社交应用!!!给力!!!拿走了!

主题

帖子

安币

游客

发表于 2014-7-7 16:50:20 | 显示全部楼层
好东西啊,支持楼主无私奉献的精神

0

主题

0

帖子

0

安币

初级码农

Rank: 1

发表于 2014-7-7 16:50:51 | 显示全部楼层
支持,下载下来研究下

5

主题

133

帖子

233

安币

攻城狮

Rank: 3Rank: 3

QQ达人

 楼主| 发表于 2014-7-7 16:53:33 | 显示全部楼层
Edutainer 发表于 2014-7-7 16:49
太贴心了,正在做一个社交应用!!!给力!!!拿走了!

谢谢支持哦!哈哈!

9

主题

108

帖子

982

安币

代码手工艺人

Rank: 4

发表于 2014-7-7 17:04:17 | 显示全部楼层
11111111111111111111111111111111111111111111111111111

2

主题

129

帖子

114

安币

程序猿

Rank: 2

QQ达人

发表于 2014-7-7 17:09:09 | 显示全部楼层
好高大上的感觉呀赶紧下手

0

主题

9

帖子

38

安币

初级码农

Rank: 1

QQ达人

发表于 2014-7-7 17:18:26 | 显示全部楼层
{:6_151:}入手,适合小型、个人项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )