如果使用IMKit,對話布局可以不用自己做
先導入IMKit module,配置好之后,在module的清單文件中,搜索host,我找到2個,把*替換成 自己項目的包名,另外搜索 RONG_CLOUD_APP_KEY,把值換成控制台的給的key
在會話界面 要創建一個ConversationActivity 它的布局conversation里面的fragment 是固定的 直接復制可以,可以自己弄個actionbar或者toolbar 顯示標題
然后在清單文件中 配置ConversationActivity 以下是官方文檔代碼
第13行 host 必須改成 自己的包名
1 <!--會話界面--> 2 <activity 3 android:name="io.rong.fast.activity.ConversationActivity" 4 android:screenOrientation="portrait" 5 android:windowSoftInputMode="stateHidden|adjustResize"> 6 7 <intent-filter> 8 <action android:name="android.intent.action.VIEW" /> 9 10 <category android:name="android.intent.category.DEFAULT" /> 11 12 <data 13 android:host="io.rong.fast" 14 android:pathPrefix="/conversation/" 15 android:scheme="rong" /> 16 </intent-filter> 17 </activity>
顯示頭像和名字
http://www.cnblogs.com/demon9/p/5852902.html
監聽消息接收 在調用 connect 方法前進行設置
實現 RongIMClient.OnReceiveMessageListener
public class ReceiveMessageListener implements RongIMClient.OnReceiveMessageListener { @Override public boolean onReceived(Message message, int i) { Logger.e(i+" onReceived "+message.getTargetId()+" "+message.getSenderUserId()); return false; } }
在Application 中設置
RongIM.init(this); RongIM.setOnReceiveMessageListener(new ReceiveMessageListener());
監聽消息發出 必須在 connect 連接成功以后調用
實現RongIM.OnSendMessageListener
public class SendMessageListener implements RongIM.OnSendMessageListener { @Override public Message onSend(Message message) { Logger.e(" onSend "+message.getContent()+" id "+message.getSenderUserId()+" "+message.getTargetId()); return message; } @Override public boolean onSent(Message message, RongIM.SentMessageErrorCode sentMessageErrorCode) { return false; } }
在開啟會話的時候設置
if (RongIM.getInstance() != null) RongIM.getInstance().setSendMessageListener(new SendMessageListener()); RongIM.getInstance().startPrivateChat(mContext, objectId, "與"+username+"聊天"); finish();