eoe 移动开发者论坛

 找回密码
 加入eoe

QQ登录

只需一步,快速开始

查看: 81229|回复: 1815
收起左侧

[Android分享] 放大招了!基于Bmob的Android即时通讯应用源码(不断更新)

    [复制链接]

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
发表于 2014-6-25 17:05:26 | 显示全部楼层 |阅读模式
本帖最后由 469874851 于 2015-3-9 16:59 编辑



BmobIM已更新至V1.1.2,更新内容如下:

1、新增支持陌生人聊天,允许发送给非好友用户;
2、新增支持自定义消息发送,便于开发者扩展;
3、新版本大幅度增加稳定性和及时性,保证百分百到达;
4、排除web后端推送对客户端的影响


查看详情请移步:[升级版] 放大招了!基于Bmob的Android即时通讯应用源码

******************************************************************************************

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

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

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

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

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

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

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

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

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

9、支持地理位置交友;

10、支持跨平台聊天,与ios端完成互通。


二、后期更新计划:

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

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


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


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的用法

论坛内有人分享过的关于Viewholder最简洁用法:http://www.eoeandroid.com/thread-321547-1-1.html

这可是和实例相结合的哦,相信大家更加容易理解和运用。


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


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

此方法是本人在藤之内的极速开发框架dhroid中学习到的,不明白的可移步框架总档:http://www.eoeandroid.com/thread-326973-1-1.html


6、头像裁剪:

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


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


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


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


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


小注:


1、在这里我多提下我这位兄弟的这个框架:


dhroid框架是我所接触到的开源框架当中写法最独特的,里面有几个部分大家可以多看看,先声明下一点,如果你是初学者,刚接触这个框架会觉得很难懂,建议有了一定基础之后再来看这个框架的源码。:


1)Dhnet-网络模块(此模块自带缓存功能,这是其他开源框架中所没有的,对了,bmob的查询也是带缓存功能的哦!),这是作者写的关于框架网络模块的地址:http://www.eoeandroid.com/thread-327440-1-1.html

2)NetJsonAdapter:这里面就有我刚才所提到的在adapter内部添加点击事件。具体请看:http://www.eoeandroid.com/thread-328607-1-1.html

3)eventbus事件总线:还没听说过eventbus,那说明你还得好好学习了,我和这位兄弟聊过,他这个eventbus也是他根据github上的eventbus(https://github.com/greenrobot/EventBus)改写的,两者我也看过,觉得他这个框架中的写法要简洁许多,也适合项目中使用。具体地址:http://www.eoeandroid.com/thread-327350-1-1.html

4)IOC注入:他的这个ioc模块在实现大部分的视图注入、资源注入的基础上,新增了接口和对象注入。

5)其他的一些工具类:JSONUtil和ViewUtil等也是不错的,


2、由于目前应用还在不断完善开发中,如果大家在使用过程中有什么问题和建议,可在此给我留言。


     五、源码下载以及官网更新地址:

     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版本更新日志:

        解决新用户注册失败的问题。
     
    5、V1.0.8_0717版本更新日志:

    1)、支持跨平台聊天,与ios端完成互通,跨平台支持的消息类型:纯文字、表情、图片。

    2)、解决多次登录之后,本地存储的昵称和头像均消失的问题;

    3)、新增对通知的声音和震动的控制。


6、V1.0.9_0725版本更新日志:


     1)、修复图片或语音发送较慢的问题;

     2)、修复注册成功之后退出应用之后再次回到登陆页的问题;

     3)、修复部分机型接收到的语音消息无法播放的问题

     4)、解决好友头像更换后会话界面的好友头像无法及时更换的问题。

     5)、解决当应用锁屏后在回到聊天页面时,新接收的消息重复显示的问题;
      
     6)、更换消息广播过滤器的Action,请注意AndroidManifest.xmll中MyMessageReceiver的Action。


      7、
V1.1.0_0810版本更新日志:

     1)、解决接收到的语音(时间超过10s)播放不成功的问题。

     2)、增加服务的稳定性,防止被杀死。

     3)、当账号注销登陆后又未登陆其他设备时,该账号仍能接收来自其他账号的消息(再次登陆成功之后即可看见未读消息)。

    8、V1.1.1_0814版本更新日志:

    1)、新增查询指定范围内的附近的人列表;

    2)、添加用户的性别设置;

    3)、附近的人新增额外属性查询:如查询性别为女的用户。

注:


        1、源码在此:--此源码已替换为最新版本V1.1.1,请放心下载!


       特注:(发帖不到三天的时间,源码下载量快突破2千, 可评论回复量不到20,真是伤心呀,为此本人不得不痛下杀手,设置源码回复可见了,希望大家能够理解和支持)。      






2、若E币不够或者不想花E币的童靴,可以到下面的地址下载最新的SDK和Demo源码,以后也会第一时间在此更新最新的代码的:我是链接


      六、 常见问题解答:

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

      1、请使用最新版本的sdk,目前最新版是V1.1.1,因为新版本修复了一些开发者提出的问题。同时,从V1.0.6版本开始,后面的版本将不再公开ApplicationId,请到官网申请,
这里附上:申请流程

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

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

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

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

      6、请大家用两台真机测试,模拟器和平板电脑未经过测试,故无法保证其能无法正常接收到消息。


      7、是否安装有Bmob的AndroidSdk自带的BmobExample的Demo,因为此IM是基于Bmob推送服务的,而sdk的demo里面也有演示推送服务的例子,但demo里面的BmobPush的sdk版本与我的IM里面的推送版本是不一样的,所以,如果安装的话,会影响到Im的消息接收,请卸载后重试!
     

   七、近期更新的帖子:

      【开源第二弹】基于Bmob的全新社交图片分享应用源码


   【开源第三弹】基于Bmob的校园生活类App--校园小菜应用源码


   【原创】手把手教你在eoe上头条  

注:为了能够结识和团结一批热衷分享,拥有开源精神的朋友。为此我建了一个QQ群:Android交流②群(99072665)。欢迎大家加入,一起交流分享。


























本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入eoe

x

点评

我支持: 5.0 有帮助: 5.0
我支持: 5 有帮助: 5
很棒  发表于 2014-9-16 11:17
很好很强大!  发表于 2014-7-1 19:09

评分

参与人数 7e币 +247 收起 理由
justChang + 10 非常精彩,支持你,加油!
LeoElva + 100 感谢精彩分享!已推送至2014-06-27日eoe微.
小尛龙 + 10 精彩主题,感谢分享
Android_UI + 100 非常精彩,支持你,加油!
c514858501 + 7

查看全部评分

本帖被以下淘专辑推荐:

该用户从未签到

15

主题

227

帖子

1149

e币
发表于 2014-6-27 18:44:09 | 显示全部楼层
感觉好叼啊!~~~~看看先

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-26 09:28:03 | 显示全部楼层
hack1st 发表于 2014-6-26 09:08
这个跟QQ好像啊- -

恩,界面和QQ有点类似,不过没他那么复杂。多谢你的回复和支持哈!

点评

用的也是XMPP协议么?  详情 回复 发表于 2014-6-26 11:01

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-26 17:01:51 | 显示全部楼层
huazai30000 发表于 2014-6-26 16:39
支持支持 真心不错啊 谢谢了啊

恩,希望大家能够学到一点自己的东西!

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-7-16 16:03:01 | 显示全部楼层
download 发表于 2014-7-16 09:45
想看看源码,楼主做复制粘贴功能了吗?楼主有发现定位时在平板上测试时连接wifi定位返回不了坐标的bug吗 ...

复制粘贴,目前还没有,也不是IM的核心功能呢,你可以自行添加哦!

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-7-16 16:02:22 | 显示全部楼层
download 发表于 2014-7-16 09:45
想看看源码,楼主做复制粘贴功能了吗?楼主有发现定位时在平板上测试时连接wifi定位返回不了坐标的bug吗 ...

这个目前没有测试过平板哦,这个地理位置的,开发者可以自己去修改的!目前地理位置并没有封装到sdk内部,就是为了让开发者自己去定义想要的功能!

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-27 16:55:15 | 显示全部楼层
lijinfeng123 发表于 2014-6-27 16:37
做的效果真的很不错,学习了。

谢谢支持哦!恩 大家一起学习

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-25 17:23:52 | 显示全部楼层
哈哈,自己来占占沙发!

点评

大神带我飞啊  详情 回复 发表于 2016-10-17 14:42

签到天数: 134 天

连续签到: 1 天

[LV.7]常住居民III

3

主题

378

帖子

2302

e币
社区认证会员 QQ认证
发表于 2014-6-25 17:48:09 | 显示全部楼层
GOOD。。。又更新了

点评

哈哈,看来是一直关注的开发者啦,呵呵!恩,今天刚更新了一版!谢谢支持!  详情 回复 发表于 2014-6-25 18:11

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-25 18:11:03 | 显示全部楼层
hkceen 发表于 2014-6-25 17:48
GOOD。。。又更新了

哈哈,看来是一直关注的开发者啦,呵呵!恩,今天刚更新了一版!谢谢支持!

签到天数: 227 天

连续签到: 1 天

[LV.7]常住居民III

1

主题

984

帖子

1924

e币
发表于 2014-6-25 18:25:59 | 显示全部楼层
建议楼主把代码托管到github上,另外把工程的编码改成utf8,希望采纳

点评

恩,谢谢你的建议,最开始的eclipse建工程默认就是gbk,后面由于eclipse的工程越来越多,所以就懒得改了!不过还是谢谢你的建议  详情 回复 发表于 2014-6-26 09:22

该用户从未签到

7

主题

23

帖子

277

e币
发表于 2014-6-25 18:27:28 | 显示全部楼层
居然放大招了!楼主,妹子在这里等很久了……现在才更新!要加油啊!

点评

妹子?怎么现在才来,偶等的好辛苦  详情 回复 发表于 2014-6-26 09:22

该用户从未签到

13

主题

288

帖子

636

e币
发表于 2014-6-25 18:48:36 | 显示全部楼层
我来了  项目看上去不错哦  源码已下载拜读

点评

额,兄弟也太客气了,拜读谈不上啦,还把你的框架名给写错了,真是对不起,这就改正确  详情 回复 发表于 2014-6-26 09:23

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

26

主题

1463

帖子

2921

e币
圣诞限量勋章社区认证会员 QQ认证
发表于 2014-6-25 18:53:31 | 显示全部楼层
撸主个淫完成么

点评

哈哈哈,是的!谢谢支持哈!  详情 回复 发表于 2014-6-26 09:20

该用户从未签到

18

主题

110

帖子

1043

e币
发表于 2014-6-25 21:40:41 | 显示全部楼层
mark,精华!  顶起~~~~

点评

恩 谢谢支持。  详情 回复 发表于 2014-6-26 09:28

签到天数: 250 天

连续签到: 1 天

[LV.8]以坛为家I

17

主题

1332

帖子

5496

e币
发表于 2014-6-26 09:08:18 | 显示全部楼层
这个跟QQ好像啊- -

点评

恩,界面和QQ有点类似,不过没他那么复杂。多谢你的回复和支持哈!  详情 回复 发表于 2014-6-26 09:28

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-26 09:20:33 | 显示全部楼层

哈哈哈,是的!谢谢支持哈!

点评

楼主有在线语音通话吗?  详情 回复 发表于 2014-9-9 10:15
楼主有直接在线语音通话吗?  详情 回复 发表于 2014-9-9 10:14

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-26 09:22:16 | 显示全部楼层
xiaoyaosheng 发表于 2014-6-25 18:25
建议楼主把代码托管到github上,另外把工程的编码改成utf8,希望采纳

恩,谢谢你的建议,最开始的eclipse建工程默认就是gbk,后面由于eclipse的工程越来越多,所以就懒得改了!不过还是谢谢你的建议

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-26 09:22:47 | 显示全部楼层
Edutainer 发表于 2014-6-25 18:27
居然放大招了!楼主,妹子在这里等很久了……现在才更新!要加油啊!

妹子?怎么现在才来,偶等的好辛苦

签到天数: 11 天

连续签到: 1 天

[LV.3]偶尔看看II

22

主题

2024

帖子

8175

e币
 楼主| 发表于 2014-6-26 09:23:37 | 显示全部楼层
藤之内 发表于 2014-6-25 18:48
我来了  项目看上去不错哦  源码已下载拜读

额,兄弟也太客气了,拜读谈不上啦,还把你的框架名给写错了,真是对不起,这就改正确
*滑动验证:
您需要登录后才可以回帖 登录 | 加入eoe

本版积分规则

推荐阅读
赞助商们

QQ|联系我们|小黑屋|手机版|eoe 移动开发者论坛 ( 京ICP备11018032 京公网安11010802020210  

GMT+8, 2017-11-19 12:59 , Processed in 0.554589 second(s), 48 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表
关闭

扫一扫 关注eoe官方微信