/** * 保存通话消息记录 * * @param type 0:音频,1:视频 */ protected void saveCallRecord(int type) { EMMessage message = null; TextMessageBody txtBody = null; if (!isInComingCall) { // 打出去的通话 message = EMMessage.createSendMessage(EMMessage.Type.TXT); message.setReceipt(username); } else { message = EMMessage.createReceiveMessage(EMMessage.Type.TXT); message.setFrom(username); } String st1 = getResources().getString(R.string.call_duration); String st2 = getResources().getString(R.string.Refused); String st3 = getResources().getString(R.string.The_other_party_has_refused_to); String st4 = getResources().getString(R.string.The_other_is_not_online); String st5 = getResources().getString(R.string.The_other_is_on_the_phone); String st6 = getResources().getString(R.string.The_other_party_did_not_answer); String st7 = getResources().getString(R.string.did_not_answer); String st8 = getResources().getString(R.string.Has_been_cancelled); switch (callingState) { case NORMAL: txtBody = new TextMessageBody(st1 + callDruationText); break; case REFUESD: txtBody = new TextMessageBody(st2); break; case BEREFUESD: txtBody = new TextMessageBody(st3); break; case OFFLINE: txtBody = new TextMessageBody(st4); break; case BUSY: txtBody = new TextMessageBody(st5); break; case NORESPONSE: txtBody = new TextMessageBody(st6); break; case UNANSWERED: txtBody = new TextMessageBody(st7); break; default: txtBody = new TextMessageBody(st8); break; } // 设置扩展属性 if (type == 0) message.setAttribute(Constant.MESSAGE_ATTR_IS_VOICE_CALL, true); else message.setAttribute(Constant.MESSAGE_ATTR_IS_VIDEO_CALL, true); // 设置消息body message.addBody(txtBody); message.setMsgId(msgid); // 保存 EMChatManager.getInstance().saveMessage(message, false); }