您的位置:首页 > 其它

融云自定义消息通知栏显示

2017-08-04 08:48 78 查看

融云自定义消息通知栏显示

第一步 首先要注册个自定义的广播,代码如下:

public classCharNotificationReceiverextendsPushMessageReceiver {

@Override

public booleanonNotificationMessageArrived(Context context,PushNotificationMessage message) {

return false;//返回false,会弹出融云SDK默认通知;返回true,融云SDK不会弹通知,通知需要由您自定义。

}

@Override

public booleanonNotificationMessageClicked(Context context,PushNotificationMessage message) {

return false;//返回false,会走融云SDK默认处理逻辑,即点击该通知会打开会话列表或会话界面;返回true,则由您自定义处理逻辑。

}

}


第二步 要在你的 AndroidManifest.xml文件中注册你刚刚创建的广播

<!--融云广播接受者-->
<receiver android:name="com.cnsunrun.common.receiver.CharNotificationReceiver"
android:exported="true">
<intent-filter>
<action android:name="io.rong.push.intent.MESSAGE_ARRIVED" />
<action android:name="io.rong.push.intent.MI_MESSAGE_ARRIVED" />
<action android:name="io.rong.push.intent.MESSAGE_CLICKED" />
<action android:name="io.rong.push.intent.MI_MESSAGE_CLICKED" />
</intent-filter>
</receiver>


经过以上的两步之后你成功了一半,但是你还是收不到消息的通知,这个问题也是困惑我了许久,最后发现我没有设置融云接受消息的监听

public class RongCloudEvent implements RongIMClient.OnReceiveMessageListener, RongIMClient.ConnectionStatusListener, RongIM.OnSendMessageListener {
private static RongCloudEvent mRongCloudInstance;
private final Context mContext;
@Override
public boolean onReceived(Message message, int i) {
//这里要返回默认的false  会走融云的逻辑
return false;
}

/*
a84d
*
* 初始化 RongCloud.
*
* @param context 上下文。
*/
public static void init(Context context) {
if (mRongCloudInstance == null) {
synchronized (RongCloudEvent.class) {
if (mRongCloudInstance == null) {
mRongCloudInstance = new RongCloudEvent(context);
}
}
}
}

/**
* 构造方法。
*
* @param context 上下文。
*/
private RongCloudEvent(Context context) {
mContext = context;
initDefaultListener();
}

/**
* 获取RongCloud 实例。
*
* @return RongCloud。
*/
public static RongCloudEvent getInstance() {
return mRongCloudInstance;
}

/**
* RongIM.init(this) 后直接可注册的Listener。
*/
private void initDefaultListener() {
RongIM.getInstance().setOnReceiveMessageListener(this);//设置消息接收监听器
RongIM.getInstance().setSendMessageListener(this);
RongIM.setConnectionStatusListener(this);
}

@Override
public void onChanged(ConnectionStatus connectionStatus) {

}

@Override
public Message onSend(Message message) {

return message;
}

@Override
public boolean onSent(Message message, RongIM.SentMessageErrorCode sentMessageErrorCode) {

return false;
}

}


第四步 要在你的application中初始化下RongCloudEvent这个类 ,这样的话就可以监听到融云发过来的消息了

//初始化融云  和融云消息的监听器
RongIM.init(this);
RongCloudEvent.init(this);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: