配置在线消息提醒功能

更新时间: 2025/03/11 17:02:23

网易云信 NIM SDK 支持通过配置消息提醒的属性来设置消息提醒的多样化功能。

SDK 通过调用 updateStatusBarNotificationConfig 方法更新通知栏消息提醒的配置项,包括提醒时是否需要亮灯,是否需要振动等。具体的配置项请参考 消息提醒配置项参考说明

设置消息提醒时不响铃

通过配置 StatusBarNotificationConfig.ring 参数来设置消息提醒时不响铃。

JavaStatusBarNotificationConfig config = UserPreferences.getStatusConfig();
config.ring = false;
NIMClient.updateStatusBarNotificationConfig(config);

设置消息提醒通知栏跳转

通过配置 StatusBarNotificationConfig.notificationEntrance 参数来设置通知栏提醒的响应 Intent 的 Activity。

示例代码如下:

JavastatusBarNotificationConfig.notificationEntrance = YourActivity.class;

对于即时通讯 Demo 来说,存在以下逻辑:

  • NimApplication.java 中调用 NIMClient.init(..., ..., NimSDKOptionConfig.getSDKOptions(this))

  • NimSDKOptionConfig.javagetSDKOptions(Context context) 中调用 initStatusBarNotificationConfig(options)

  • initStatusBarNotificationConfig(SDKOptions options) 中配置 StatusBarNotificationConfig config = loadStatusBarNotificationConfig()

  • loadStatusBarNotificationConfig() 中配置 config.notificationEntrance = WelcomeActivity.class

  • WelcomeActivity.javaonIntent 中判断 if (intent.hasExtra(NimIntent.EXTRA_NOTIFY_CONTENT)) 调用 parseNotifyIntent(intent),具体代码请参考 Demo。

    关于 EXTRA_NOTIFY_CONTENT 的含义请参考 EXTRA_NOTIFY_CONTENT

单击在线通知的通知栏传递的 extra 类型

单击在线通知的通知栏,会返回消息的详细信息,以便于后续进行页面跳转等操作。

通过配置 StatusBarNotificationConfig.notificationExtraType 来选择返回消息的类型,该参数的类型请参考 NotificationExtraTypeEnum

NotificationExtraTypeEnum 枚举值 Extra 的 key Extra 的 value
MESSAGE NimIntent#EXTRA_NOTIFY_CONTENT 返回消息提列表,ArrayList<IMMessage> 格式
JSON_ARR_STR NimIntent#EXTRA_NOTIFY_SESSION_CONTENT 返回 String 格式的 JSONArray,每个元素包含消息的 uuidsessionIdsessionTypetime

示例代码如下:

JavastatusBarNotificationConfig.notificationExtraType = NotificationExtraTypeEnum.MESSAGE;

设置消息提醒免打扰时段

网易云信 NIM SDK 支持全局的消息提醒免打扰。

当用户不需要在接收消息提醒,或者只需要接收某段时间的消息提醒时,您可以通过以下两种方式实现。

  • 调用 toggleNotification 方法关闭消息提醒功能,关闭后,将不再接收消息提醒。

    NIMClient.toggleNotification(false);
    
  • 在开启消息提醒功能的情况下通过配置 StatusBarNotificationConfig 的以下参数来设置消息提醒的免打扰时段。

    参数类型说明
    downTimeToggleBoolean消息提醒免打扰设置开关,默认为关闭(false)
    downTimeBeginString消息提醒免打扰的开始时间,只有 `downTimeToggle` 为 true 时才有效,格式为北京时间的 24 小时计数 HH:mm
    downTimeEndString消息提醒免打扰的结束时间,只有 `downTimeToggle` 为 true 时才有效,格式为北京时间的 24 小时计数 HH:mm
    downTimeEnableNotificationBoolean消息提醒免打扰期间,是否显示通知,默认为显示(true)
    • 如果结束时间小于开始时间,那么免打扰时间为开始时间-24:00-结束时间。
    • 若将 downTimeEnableNotification 设置为 false,即表示在消息提醒免打扰期间,不显示通知。

    示例代码如下:

    config.downTimeToggle = true;
    config.downTimeBegin = startTime;
    config.downTimeEnd = endTime;
    config.downTimeEnableNotification = enableNotification;
    NIMClient.updateStatusBarNotificationConfig(config);
    

消息提醒配置项参考说明

StatusBarNotificationConfig 参数 说明
notificationSmallIconId 通知栏小图标的资源 ID,不提供则使用 App 图标。
ring 是否响铃提醒,默认 true。
notificationSound 提醒声音资源,不提供则使用系统默认提示音。
vibrate 是否振动提醒,默认 true。
ledARGB 呼吸灯颜色,建议使用基本颜色(绿、蓝、红等),避免混合色。
ledOnMs 呼吸灯亮起持续时间(毫秒)。
ledOffMs 呼吸灯熄灭持续时间(毫秒)。
hideContent 是否隐藏消息详情和发送者昵称,默认 false。
downTimeToggle 免打扰设置开关,默认关闭。
downTimeBegin 免打扰开始时间,24小时制,格式 HH:mm。
downTimeEnd 免打扰结束时间,24小时制,格式 HH:mm。
若结束时间设置小于开始时间,则为 "开始时间-24:00-结束时间"。
notificationEntrance 通知栏点击跳转的 activity 类型。
若为 null,则使用包 launcher 的入口 activity。
titleOnlyShowAppName 通知栏标题是否只显示应用名,默认 false。
  • false:单会话显示会话名,多会话显示应用名。
  • true:始终显示应用名。
应用名在 AndroidManifest 的 application 节点设置 android:label。
notificationColor 通知栏颜色,应用于 NotificationCompat.BuildersetColor安卓 5.0+ 会影响 smallIcon
downTimeEnableNotification 免打扰期间是否显示通知,默认显示。
notificationFoldStyle 通知栏折叠类型:
  • 折叠所有通知为一条:NotificationFoldStyle.ALL
  • 不折叠通知:NotificationFoldStyle.EXPAND
  • 同会话消息折叠:NotificationFoldStyle.CONTACT
notificationExtraType 点击通知栏传递的 extra 类型:
  • 返回 ArrayList<IMMessage>:NotificationExtraTypeEnum.MESSAGE
  • 返回 String 格式的 JSONArray:NotificationExtraTypeEnum.JSON_ARR_STR
showBadge App 图标是否显示未读数(红点),仅安卓 8.0+ 有效。
customTitleWhenTeamNameEmpty 当群名称为空时,用作通知栏标题。
notificationFilter 决定是否弹出通知的过滤接口,为空等同于返回 DEFAULT,默认 null。
postNotificationsRequester Android 13 弹出通知前,向 App 请求 Manifest.permission#POST_NOTIFICATIONS 权限。
此文档是否对你有帮助?
有帮助
去反馈
  • 设置消息提醒时不响铃
  • 设置消息提醒通知栏跳转
  • 单击在线通知的通知栏传递的 extra 类型
  • 设置消息提醒免打扰时段
  • 消息提醒配置项参考说明