融云自定义消息通知栏显示
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);
相关文章推荐
- Notification消息通知(消息合并且显示条数,自定义消息通知内容布局)
- jquery validate自定义错误消息的显示方式
- IOS 推送 通知栏消息模式 显示demo字段,如何让demo字段变为应用名
- [原]【软件测试自动化-QTP系列讲座 51】== 自定义消息通知系统 ==
- 【起航计划 026】2015 起航计划 Android APIDemo的魔鬼步伐 25 App->Notification->Status Bar 状态栏显示自定义的通知布局,省却声音、震动
- 极光推送(自定义消息通知)
- 当关闭通知消息权限后无法显示系统Toast的解决方案
- 通知栏发送消息Notification(可以使用自定义的布局)
- Swift - JPush极光推送的使用(发送自定义消息/通知/别名/tag)
- 【软件测试自动化-QTP系列讲座 51】== 自定义消息通知系统 ==
- 调试魅族手机不显示通知栏消息bug的过程
- 安卓Toast显示提示消息(自定义view,根据子线程消息显示提示)
- 当关闭通知消息权限后无法显示系统Toast的解决方案
- 清除windows7 在任务栏上显示的图标和通知,自定义选项内的图标
- 【Android开发】消息提示框与对话框-使用Notification在状态栏上显示通知
- Android 自定义底部导航栏&消息显示
- (转)android Toast 自定义消息显示
- 【Android】监听自定义通知栏消息事件
- Android--使用Notification在通知栏显示消息
- Android中桌面图标显示通知消息的数量