android端环信集成做消息回撤,单聊可以撤回,群聊加上官方文档那两句代码还是不行
//发送透传消息代码如下:
String action="REVOKE_FLAG";
EMMessage cmdMessage=EMMessage.createSendMessage(EMMessage.Type.CMD);
if (message.getChatType() == EMMessage.ChatType.GroupChat){
Log.i(TAG, "是群组消息");
cmdMessage.setChatType(ChatType.GroupChat);
}
EMCmdMessageBody cmdBody=new EMCmdMessageBody(action);
String toChatUserName=getIntent().getExtras().getString("toChatUserName");
Log.i(TAG,"toChatUserName------>"+toChatUserName);
cmdMessage.setReceipt(toChatUserName);
String msgId=message.getMsgId();
Log.i(TAG, "msgIdsend-------->"+msgId);
cmdMessage.setAttribute("msgid",msgId);
cmdMessage.addBody(cmdBody);
EMClient.getInstance().chatManager().sendMessage(cmdMessage);
//接收透传消息代码如下:
@Override
public void onCmdMessageReceived(List messages) {
for (EMMessage message : messages) {
EMCmdMessageBody cmdMsgBody = (EMCmdMessageBody) message.getBody();
String action = cmdMsgBody.action();
//TODO 接收cmd信息
if (action.equals("REVOKE_FLAG")) {
Log.i(TAG, "进入");
String msgId;
try {
msgId = message.getStringAttribute("msgid");
Log.i(TAG, "msgIdreceive-------->"+msgId);
EMConversation conversation =EMClient.getInstance().chatManager().getConversation(message.getFrom());
//--删除消息来表示撤回--
conversation.removeMessage(msgId);
messageList.refresh();
// 如果需要,可以插入一条“XXX回撤一条消息”
} catch (HyphenateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//end of red packet code
super.onCmdMessageReceived(messages);
}
String action="REVOKE_FLAG";
EMMessage cmdMessage=EMMessage.createSendMessage(EMMessage.Type.CMD);
if (message.getChatType() == EMMessage.ChatType.GroupChat){
Log.i(TAG, "是群组消息");
cmdMessage.setChatType(ChatType.GroupChat);
}
EMCmdMessageBody cmdBody=new EMCmdMessageBody(action);
String toChatUserName=getIntent().getExtras().getString("toChatUserName");
Log.i(TAG,"toChatUserName------>"+toChatUserName);
cmdMessage.setReceipt(toChatUserName);
String msgId=message.getMsgId();
Log.i(TAG, "msgIdsend-------->"+msgId);
cmdMessage.setAttribute("msgid",msgId);
cmdMessage.addBody(cmdBody);
EMClient.getInstance().chatManager().sendMessage(cmdMessage);
//接收透传消息代码如下:
@Override
public void onCmdMessageReceived(List
for (EMMessage message : messages) {
EMCmdMessageBody cmdMsgBody = (EMCmdMessageBody) message.getBody();
String action = cmdMsgBody.action();
//TODO 接收cmd信息
if (action.equals("REVOKE_FLAG")) {
Log.i(TAG, "进入");
String msgId;
try {
msgId = message.getStringAttribute("msgid");
Log.i(TAG, "msgIdreceive-------->"+msgId);
EMConversation conversation =EMClient.getInstance().chatManager().getConversation(message.getFrom());
//--删除消息来表示撤回--
conversation.removeMessage(msgId);
messageList.refresh();
// 如果需要,可以插入一条“XXX回撤一条消息”
} catch (HyphenateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//end of red packet code
super.onCmdMessageReceived(messages);
}
没有找到相关结果
已邀请:
2 个回复
Wxin
蹦极不栓绳