注册

Android环信2.x透传无法接收的问题

按照Android环信2.x的文档中的说法来使用透传,A端发送透传后进入onSuccess告知我发送成功,但B端却无法收到透传消息。透传是否需要二者为好友关系?为什么文档写得这么简单,用起来却并不简单?
(发送端)代码如下:
EMMessage cmdMsg = EMMessage.createSendMessage(EMMessage.Type.CMD);

//支持单聊和群聊,默认单聊,如果是群聊添加下面这行
cmdMsg.setChatType(EMMessage.ChatType.GroupChat);

String action="action1";//action可以自定义,在广播接收时可以收到
CmdMessageBody cmdBody=new CmdMessageBody(action);
cmdMsg.setReceipt(currentAccount);
cmdMsg.setAttribute("abc", "Are you ready?");//支持自定义扩展
cmdMsg.addBody(cmdBody);
EMChatManager.getInstance().sendMessage(cmdMsg, new EMCallBack() {
@Override
public void onSuccess() {
Log.e("Tag", "success");
}

@Override
public void onError(int i, String s) {
Log.e("Tag", "onError");

}

@Override
public void onProgress(int i, String s) {
Log.e("Tag", "onProgress");

}
});
(接收端)代码如下:
// 注册一个cmd消息的BroadcastReceiver
IntentFilter cmdIntentFilter = new IntentFilter(EMChatManager.getInstance().getCmdMessageBroadcastAction());
getActivity.registerReceiver(cmdMessageReceiver, cmdIntentFilter);
//监听方法后初始化透传
EMChat.getInstance().setAppInited();

/**
* cmd消息BroadcastReceiver
*/
private BroadcastReceiver cmdMessageReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
//获取cmd message对象
String msgId = intent.getStringExtra("msgid");
EMMessage message = intent.getParcelableExtra("message");
//获取消息body
CmdMessageBody cmdMsgBody = (CmdMessageBody) message.getBody();
String aciton = cmdMsgBody.action;//获取自定义action
//获取扩展属性
String attr=message.getStringAttribute("a");
}
};
发送端与接收端分别两个不同账号,两台不同手机,两个不同Fragment中。。。望告知解决方法,已崩溃!!!
已邀请:
我已经在接收端registerReceiver后加入了EMChat.getInstance().setAppInited();
可还是无法收到消息,账号也没错,发的群聊邀请都能收到
 
为什么群聊就一定要学微信,不用经同意就进群?搞得还需要使用透传,提供的
EMGroupManager.getInstance().setAutoAcceptInvitation(false);
完全无效的!!!邀请群聊虽然进入群聊邀请的监听,但不调用同意邀请,members也已经将那个人加入到群聊了!!!坑!!!
没人遇过这个问题?
发送单聊就把cmdMsg.setChatType(EMMessage.ChatType.GroupChat);去了

要回复问题请先登录注册