注册即时通讯云 注册客服云
环信即时通讯 IM SDK(Android)消息类型与发送示例

环信即时通讯 IM SDK(Android)消息类型与发送示例


说明:以下通讯内容仅在业务代码调用对应发送接口时才会产生并上传至服务端;未调用相应 API 时不会触发对应类型的消息传输。

适用:Android 平台,Java API 以环信 Chat SDK 为准。

1. 文本消息(TXT)

  • 用于传输文字内容。

EMMessage msg = EMMessage.createTextSendMessage("这是一条文字消息", to);
EMClient.getInstance().chatManager().sendMessage(msg);

2. 图片消息(IMAGE)

  • 用于传输图片;sendOriginalImage 为是否发送原图。

EMMessage msg = EMMessage.createImageSendMessage("/sdcard/pic.jpg", false, to);
EMClient.getInstance().chatManager().sendMessage(msg);

3. 语音消息(VOICE)

  • 用于传输语音文件;timeLength 为语音时长(秒)。

EMMessage msg = EMMessage.createVoiceSendMessage("/sdcard/voice.amr", 10, to);
EMClient.getInstance().chatManager().sendMessage(msg);

4. 视频消息(VIDEO)

  • 用于传输视频及缩略图;timeLength 为视频时长(秒)。

EMMessage msg = EMMessage.createVideoSendMessage(
    "/sdcard/demo.mp4", "/sdcard/demo_thumb.jpg", 30, to);
EMClient.getInstance().chatManager().sendMessage(msg);

5. 文件消息(FILE)

  • 用于传输任意文件。

EMMessage msg = EMMessage.createFileSendMessage("/sdcard/report.pdf", to);
EMClient.getInstance().chatManager().sendMessage(msg);

6. 位置消息(LOCATION)

  • 用于传输地理位置(经纬度与地址描述)。

EMMessage msg = EMMessage.createLocationSendMessage(
    39.9042, 116.4074, "北京市东城区", to);
EMClient.getInstance().chatManager().sendMessage(msg);

7. 透传 / 命令消息(CMD)

  • 用于不下发历史、不入库的指令类消息(具体行为以 SDK 版本说明为准)。

EMMessage msg = EMMessage.createSendMessage(EMMessage.Type.CMD);
msg.setTo(to);
msg.addBody(new EMCmdMessageBody("action"));
EMClient.getInstance().chatManager().sendMessage(msg);

8. 自定义消息(CUSTOM)

  • 用于业务自定义事件与扩展字段。

EMMessage msg = EMMessage.createSendMessage(EMMessage.Type.CUSTOM);
String event = "gift";
EMCustomMessageBody body = new EMCustomMessageBody(event);
java.util.Map<String, String> params = new java.util.HashMap<>();
params.put("key1", "value1");
body.setParams(params);
msg.addBody(body);
msg.setTo(to);
msg.setChatType(EMMessage.ChatType.Chat);
EMClient.getInstance().chatManager().sendMessage(msg);

9. 合并转发消息(COMBINE)

  • 用于合并转发多条历史消息;messageIdList 为被合并消息 ID 列表。

java.util.List<String> ids = java.util.Arrays.asList("msgId1", "msgId2");
EMMessage msg = EMMessage.createCombinedSendMessage(
    "聊天记录", "摘要", "兼容文本", ids, to);
EMClient.getInstance().chatManager().sendMessage(msg);

类型与工厂方法对照(Android)

消息类型主要创建方式
TXT / 文本createTextSendMessage
IMAGE / 图片createImageSendMessage
VOICE / 语音createVoiceSendMessage
VIDEO / 视频createVideoSendMessage
FILE / 文件createFileSendMessage
LOCATION / 位置createLocationSendMessage
CMD / 命令createSendMessage(Type.CMD) + EMCmdMessageBody
CUSTOM / 自定义createSendMessage(Type.CUSTOM) + EMCustomMessageBody
COMBINE / 合并转发createCombinedSendMessage

申请试用

提交后工作人员会尽快与您联系进行功能演示
技术咨询已转移到管理后台,请先登录

即时通讯云使用者请在应用详情页面咨询
客服云使用者请进入管理员模式咨询

×

电话咨询

注册客服

注册IM

环信即时通讯云——100注册用户永久免费
环信MQTT——免费开通 每月赠送额度
环信PUSH——1000个DAU免费

注册享福利、赢好礼

立即体验