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

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

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


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;
    }

    /**
     * 初始化 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);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值