此帖爲 放大招了!基於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