设置全局免打扰
IMKit SDK 支持设置通知静默时段,以实现全局免打扰的效果。
- 该接口会设置一个从任意时间点(
HH:MM:SS
)开始的免打扰时间窗口。在再次设置或删除用户免打扰时间段之前,当次设置的免打扰时间窗口会每日重复生效。例如,App 用户希望设置永久全天免打扰,可设置startTime
为00:00:00
,period
为1439
。 - 单个用户仅支持设置一个时间段,重复设置会覆盖该用户之前设置的时间窗口。
提示
从 5.2.2 版本开始,推荐集成 IMKit 的客户直接使用 IMLib 的 ChannelClient 类中可同时配置「免打扰级别」的全局免打扰接口。详见 IMLib 文档全局免打扰。
在经 SDK 设置的全局免打扰时段内:
- 如果客户端在后台运行时,会话中有新的消息,将不会进行通知提醒,可以收到消息内容。
- 如果客户端为离线状态,将不会收到远程通知提醒。
- 例外情况:@ 消息属于高优先级消息,不受全局免打扰逻辑控制,会始终进行通知提醒。
设置全局免打扰时段(< 5.2.2)
设置全局免打扰时段,以屏蔽所有通知,包括本地通知以及远程推送通知。
RongNotificationManager.getInstance().setNotificationQuietHours(startTime, spanMinutes, callback)
参数 | 类型 | 说明 |
---|---|---|
startTime | String | 开始时间,精确到秒。格式为 HH:MM:SS ,例如 01:31:17 。 |
spanMinutes | int | 免打扰时间窗口大小,单位为分钟。支持范围为 [1-1439]。 |
callback | RongIMClient.OperationCallback | 操作回调 |
获取全局免打扰时段(< 5.2.2)
通过以下方法,可以获取当前应用设置的静默时间。
RongNotificationManager.getInstance().getNotificationQuietHours(callback);
参数 | 类型 | 说明 |
---|---|---|
callback | GetNotificationQuietHoursCallback | 获取全局免打扰时间的回调。 |
GetNotificationQuietHoursCallback
提供两个回调方法:
-
获取通知静默时间成功时的回调方法
/**
* 获取通知静默时间成功时的回调方法。
*
* @param startTime 起始时间 格式 HH:MM:SS。
* @param spanMinutes 间隔分钟数 0 \< spanMinutes \< 1440。
*/
void onSuccess(String startTime, int spanMinutes); -
获取通知静默时间出错时的回调方法
/**
* 获取通知静默时间出错时的回调方法。
*
* @param errorCode 获取通知静默时间错误代码。
*/
void onError(ErrorCode errorCode);
取消全局免打扰时段(< 5.2.2)
通过以下方法移除之前设置的通知静默时间,移除成功后,会正常收到本地通知或推送通知。
RongNotificationManager.getInstance().removeNotificationQuietHours(callback);