注册

环信3.0集成问题,求大神。

Android 2.x升级3.0 以前2.0有一个注册全局监听,发现3.0没有这个注册全局监听了。
2.x用的是这个全局监听

//只有注册了广播才能接收到新消息,目前离线消息,在线消息都是走接收消息的广播(离线消息目前无法监听,在登录以后,接收消息广播会执行一次拿到所有的离线消息) NewMessageBroadcastReceiver msgReceiver = new NewMessageBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter(EMChatManager.getInstance().getNewMessageBroadcastAction()); intentFilter.setPriority(3); registerReceiver(msgReceiver, intentFilter);   private class NewMessageBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 注销广播 abortBroadcast();   // 消息id(每条消息都会生成唯一的一个id,目前是SDK生成) String msgId = intent.getStringExtra("msgid"); //发送方 String username = intent.getStringExtra("from"); // 收到这个广播的时候,message已经在db和内存里了,可以通过id获取mesage对象 EMMessage message = EMChatManager.getInstance().getMessage(msgId); EMConversation conversation = EMChatManager.getInstance().getConversation(username); // 如果是群聊消息,获取到group id if (message.getChatType() == ChatType.GroupChat) { username = message.getTo(); } if (!username.equals(username)) { // 消息不是发给当前会话,return return; } } }
 
3.0发现没有这个全局监听在初始化的时候用

EMClient.getInstance().chatManager().addMessageListener(msgListener); EMMessageListener msgListener = new EMMessageListener() {   @Override public void onMessageReceived(List messages) { //收到消息 }   @Override public void onCmdMessageReceived(List messages) { //收到透传消息 }   @Override public void onMessageReadAckReceived(List messages) { //收到已读回执 }   @Override public void onMessageDeliveryAckReceived(List message) { //收到已送达回执 }   @Override public void onMessageChanged(EMMessage message, Object change) { //消息状态变动 } }
 
但是一运行程序设置监听这里报异常空指针。 是我用错方法了?还是怎么回事。求大神。
已邀请:
2.x可以使用广播或者事件监听来接收消息,这两者是不可混用的,使用一个就好;
3.0是使用的事件监听来接收消息的,没有广播了,你可以全局注册事件监听来接收消息http://docs.easemob.com/doku.php?id=im:200androidcleintintegration:50singlechat#接收消息
 
报异常,具体是报的什么错?

要回复问题请先登录注册