此帖为 放大招了!基于Bmob的Android即时通信应用源码 (一) 续篇,主要是更新的功能。java
1、更新更能:android
一、新增支持陌生人聊天,容许发送给非好友用户;
二、新增支持自定义消息发送,便于开发者扩展;
三、新版本大幅度增长稳定性和及时性,保证百分百到达;
四、排除web后端推送对客户端的影响。web
2、更新讲解:
一、若是你但愿能和全部人(不局限于好友关系)进行聊天,那么这一版本就解决了这个问题。
json
若是你想看到效果,能够点击附近的人,你找到一个非好友用户,再查看他的资料,这一页面下方有个“发起会话”的按钮,这里就能够和陌生人聊天啦。(不要问我,为何我搜索附近的人没数据呢?你一个新建的key,连注册用户都没有,那附近的人怎么可能会显示出来?)后端
二、若是你但愿发送任意格式的消息,那么你只须要调用以下方法便可:测试
BmobChatManager.getInstance(this).sendJsonMessage(String json, String targetId);this
注:第一个参数:你要发的Json格式的字符串,第二个参数,就是对方的objectIdspa
但关于发送的Json格式遵循必定的规范,具体可查看:。.net
而后,你就须要在MyMessageReceiver的广播接收器中自行解析你所定义格式的消息啦。orm
三、V1.1.2版本大幅度加强了及时性和稳定性,可以保证到达率。
因为推送服务有时候会出现消息丢失的状况,并不能保证消息必定被对方接收到,故在此基础上增长了一个定时检测服务,定时时间能够由开发者自行设定。
你须要开启定时检测服务的话,须要在主程序界面的onCreate方法中调用以下方法:
BmobChat.getInstance(this).startPollService(30)
而后在onDestory方法里调用以下方法取消检测服务:
BmobChat.getInstance(this).stopPollService()
另外,须要在你的AndroidManifest.xml里面加上以下一段代码
<!-- 启动定时检测操做 -->
<service android:name="cn.bmob.im.poll.BmobPollService">
<intent-filter>
<action android:name="cn.bmob.im.service.BmobPollService"/>
</intent-filter>
</service>
四、有的同窗没有两部真机,会从web后台推送消息给客户端,以前的版本会使得客户端奔溃,这一版排除了后端推送对客户端的影响。
3、使用Bmob_IM_SDK时须要注意的问题以下:
一、请使用两台真机测试,请不要用模拟器来测试,模拟器是接收不到推送消息的。
二、不少人因为没有两部真机,会采用一个手机注册两个不一样的帐号,这样来回切换帐户来测试聊天,这种方式达不到测试的效果,虽然这一版本的改进使得这种方式可以收到消息,可是及时性比较低。而以前的版本,这种方式是收不到消息的,故不建议这样测试,只有两部真机才能达到真实的聊天效果。
三、请到Bmob官网注册申请应用的Application ID并在SplashActivity类中完成初始化操做。
四、有不少人导入了工程后发现有这个错:java.lang.IncompatibleClassChangeError: cn.bmob.im.project,这个是由于BmobIM_V1.1.2是基于BmobSDK_v3.2.3_0919混淆打包的,因此若是你要用的话,这两个包应该是一块儿导进去的,替换以前的Bmobsdk和BmobIM包。
源码在此
连接: http://pan.baidu.com/s/1c0CUcVI 密码: ctuc