Skip to content

Commit

Permalink
更新文档
Browse files Browse the repository at this point in the history
  • Loading branch information
heshaoyue committed Sep 22, 2014
1 parent 5a8d72d commit 1c07e52
Show file tree
Hide file tree
Showing 30 changed files with 81 additions and 104 deletions.
185 changes: 81 additions & 104 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,174 +1,151 @@
一、已实现功能:
# Bmob即时聊天开发组件

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

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

3、支持会话的本地化存储;
![](image/reg.png)

4、自定义消息处理机制;
登录页面

5、同一账号多处登陆强制下线;
![](image/login.png)

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

7、支持黑名单管理功能;
![](image/session.png)

8、支持消息重发机制,由网络或者其他原因导致的消息发送失败皆可点击重发;
![](image/session1.png)

9、支持地理位置交友;
聊天页面

10、支持跨平台聊天,与ios端完成互通。
![](image/chat.png)

![](image/chat1.png)

二、后期更新计划:
![](image/photo.png)

1、增加在线、离线状态的显示;
![](image/map.png)

2、增加群聊模式,方便群管理;
语音聊天页面

三:看本应用源码能学到啥:
![](image/voice1.png)

1、认识和深入了解Bmob:
![](image/voice2.png)

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

2、最新百度地图sdk的用法:
![](image/voice3.png)

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

3、最简洁Viewholder的用法:
通讯录页面

论坛内有人分享过的关于Viewholder最简洁用法:http://www.eoeandroid.com/thread-321547-1-1.html
这可是和实例相结合的哦,相信大家更加容易理解和运用。
![](image/contact.png)

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

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

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

6、头像裁剪
![](image/block1.png)

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

7、实现类似微信通讯录页面的效果,并支持对联系人的查找和过滤。
![](image/search.png)

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

9、利用Fragment创建类似Tabhost样式的布局。
![](image/newfriend.png)

......其他惊喜留待大家发现。
附近的人页面

小注:
![](image/near.png)

1、在这里我多提下我这位兄弟的这个框架:
个人资料页面

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

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

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

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

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

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

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

四、更新日志
1. 支持好友管理功能,包括添加好友、删除好友、获取好友列表,也可以与你已有的用户系统完全解耦;
2. 支持的消息类型:纯文本、聊天表情、图片、位置、语音;
3. 支持会话的本地化存储;
4. 自定义消息处理机制;
5. 同一账号多处登陆强制下线;
6. 支持消息回执发送:已发送、已阅读两种状态;
7. 支持黑名单管理功能;
8. 支持消息重发机制,由网络或者其他原因导致的消息发送失败皆可点击重发;
9. 支持地理位置交友;
10. 支持跨平台聊天,与ios端完成互通。

1、V1.0.4_0627版本更新日志:
1)、新增地理位置交友.支持分页及是否显示附近的好友;

2)、支持列表的分页查询;
## 后期更新计划:

3)、修改其他bug

2、 V1.0.5_0704版本更新日志:
1. 增加在线、离线状态的显示;
2. 增加群聊模式,方便群管理;

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

2)、修复分页查询附近的人和好友列表时出现重复数据的问题;
## 看本应用源码能学到啥

3)、 修复其他bug。

3、V1.0.6_0711版本更新日志(这一版本只对sdk进行部分重构,未增加新功能,主要的修改在于应用)
1. 认识和深入了解Bmob:

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)、修复注册成功之后退出应用之后再次回到登陆页的问题;
Bmob专注于帮助开发者解决后端云存储,无须搭建后台即可开发出一款高性能的app;

3)、修复部分机型接收到的语音消息无法播放的问题
2. 最新百度地图sdk的用法:

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

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

7、V1.1.0_0810版本更新日志:
论坛内有人分享过的关于Viewholder最简洁用法:http://www.eoeandroid.com/thread-321547-1-1.html
这可是和实例相结合的哦,相信大家更加容易理解和运用。

1)、解决接收到的语音(时间超过10s)播放不成功的问题
4. 最适合做聊天界面的MessageChatadapter的写法:根据不同的消息类型展示不用类型Item界面,利用getItemViewType和getViewTypeCount两个方法。同时和最简洁的Viewholder写法融合起来

2)、增加服务的稳定性,防止被杀死
5. 超简洁Adapter写法,支持在adapter内部添加点击事件,方便为ListView单个item中的控件添加点击事件

3)、当账号注销登陆后又未登陆其他设备时,该账号仍能接收来自其他账号的消息(再次登陆成功之后即可看见未读消息)。
此方法是本人在藤之内的极速开发框架dhroid中学习到的,不明白的可移步框架总档:http://www.eoeandroid.com/thread-326973-1-1.html

8、V1.1.1_0814版本更新日志:
1)、新增查询指定范围内的附近的人列表;
6. 头像裁剪

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

3)、附近的人新增额外属性查询:如查询性别为女的用户
7. 实现类似微信通讯录页面的效果,并支持对联系人的查找和过滤

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

五、 常见问题解答:
9. 利用Fragment创建类似Tabhost样式的布局。

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

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的时候需要自行修改下编码方式哦!
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的消息接收,请卸载后重试!


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

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

问答社区:[http://wenda.bmob.cn](http://wenda.bmob.cn)

为了能够结识和团结一批热衷分享,拥有开源精神的朋友。为此我建了一个QQ群:Android交流②群(99072665)。欢迎大家加入,一起交流分享。
技术邮箱:support@bmob.cn
Binary file added image/IMG_0612.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/IMG_0613.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/IMG_0614.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/IMG_0615.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/IMG_0616.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/block.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/block1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/chat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/chat1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/contact.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/contact1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/detail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/detail1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/detail2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/near.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/newfriend.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/photo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/reg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/rumen_chuangjian.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/search.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/session.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/session1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/setting.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/voice1.png
Binary file added image/voice2.png
Binary file added image/voice3.png
Binary file added image/voice4.png

0 comments on commit 1c07e52

Please sign in to comment.