注册

继承了EaseUI,为什么对方发送消息或者系统发送消息顶部状态栏收不到广播通知?

聊天界面内容倒是能更新。
但,不论在与不在聊天界面,都无法收到对方发送过来的顶部状态栏的广播通知。
请问是需要自己实现还是有可能被其他方法给阻塞了?
已邀请:
怎样调用?
 在需要通知栏通知的地方调用这个:
 
EaseUI.getInstance().getNotifier().onNewMsg(msg);

onNewMsg(EMMessage message) 和 onNewMesg(List<EMMessage> messages) 就是上面我让你改的两个方法.根据需要调用其中一个方法就可以了.
 
 
在哪里调用?
 
聊天消息监听器中,群组消息监听器中,,,,,以及任何一个你需要通知栏通知的地方.
比如:在EMMessageListener的onMessageReceived方法中,调用onNewMesg,就可以实现收到聊天消息就进行通知栏通知了.

 
想要实现什么功能?通知栏提醒吗?是否有集成呢?需要再初始化之后去设置通知栏,另外通知栏是手APP在后台时候才可以收到的!
通知栏是手APP在后台时候才可以收到的,如果是依赖easeui可以参考文档集成:
http://docs.easemob.com/start/200androidcleintintegration/135easeuiuseguide#设置通知栏内容提供者_不设置则使用默认的
默认的是,只有APP在后台才会显示到通知栏,但是会有震动.
 
如果,楼主想要不管在不在后台都显示到通知栏的话,可以这么做:
 
1.打开这个文件 com.hyphenate.easeui.model.EaseNotifier.java
2.修改114ha行到159行的两个方法,修改成这样:
    /**
* handle the new message
* this function can be override
*
* @param message
*/
public synchronized void onNewMsg(EMMessage message) {
if(EaseCommonUtils.isSilentMessage(message)){
return;
}
EaseSettingsProvider settingsProvider = EaseUI.getInstance().getSettingsProvider();
if(!settingsProvider.isMsgNotifyAllowed(message)){
return;
}

// check if app running background 不检查,不管在不在后台运行都要通知栏
sendNotification(message, false);
// if (!EasyUtils.isAppRunningForeground(appContext)) {
// EMLog.d(TAG, "app is running in backgroud");
// sendNotification(message, false);
// } else {
// sendNotification(message, true);
//
// }

vibrateAndPlayTone(message);
}

public synchronized void onNewMesg(List<EMMessage> messages) {
if(EaseCommonUtils.isSilentMessage(messages.get(messages.size()-1))){
return;
}
EaseSettingsProvider settingsProvider = EaseUI.getInstance().getSettingsProvider();
if(!settingsProvider.isMsgNotifyAllowed(null)){
return;
}
// check if app running background , 不检查,不管在不在后台运行都要通知栏
sendNotification(messages, false);
// if (!EasyUtils.isAppRunningForeground(appContext)) {
// EMLog.d(TAG, "app is running in backgroud");
// sendNotification(messages, false);
// } else {
// sendNotification(messages, true);
// }
vibrateAndPlayTone(messages.get(messages.size()-1));
}
----------------------------------------------------------------------------------------------------------------------
其实,很简单,就是吧检查APP是否在后台运行的代码注释掉而已.
 
注意:我是在 3.3.1 版本下这么做的,其他版本,需要修改的代码不一定在这个行数.
 
   
 
消息监听有去调用通知栏吗?不调用收不到

kevinhe - 萌新程序猿

你好  我想问一下  使用easeui  也能够接收到通知了  那怎么通过这个通知跳转到相应的聊天页面  easeui里面不能直接跳转到自己工程的Activity吧  求指点
 

要回复问题请先登录注册