问题描述
Logcat打印如下:D/chat: chat listener receive msg from:admin@easemob.com body:{"from":"admin","to":"100000","bodies":[{"type":"cmd","action":"fuck"}],"ext":{"type":4,"nickname":"系统通知","avatar":""}} 可是进不到receiver的 onReceive方法 /** * 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 EMLog.d(TAG, "receive the event id : " + message.getMsgId()); ToastUtil.showTextToast(appContext, aciton); //获取扩展属性 // String attr=message.getStringAttribute("a"); } };// 注册一个cmd消息的BroadcastReceiver IntentFilter cmdIntentFilter = new IntentFilter(EMChatManager.getInstance().getCmdMessageBroadcastAction()); appContext.registerReceiver(cmdMessageReceiver, cmdIntentFilter);
解决方案
已解决 添加notifyForRecevingEvents即可
解决方案二:
用我们提供的调rest的示例代码给客户端的demo发一下透传消息,看看能不能接收到,同时也测试下安卓端给安卓端发透传消息看看能不能正常接收。