Skip to main content

Set Conversation Do Not Disturb

The IMKit SDK supports setting Do Not Disturb by conversation type or ID. When running in the background, messages are received silently without notifications. In offline mode, vendor push alerts won't be triggered.

The Do Not Disturb status syncs in real-time to the server, with RC enabling cross-device auto-sync. Clients can monitor status changes or actively query the latest data.

Set Do Not Disturb Status for Conversations

The setConversationNotificationStatus method in IMCenter allows configuring Do Not Disturb by conversation type or ID. When enabled, it suppresses message notifications in background/offline states and displays a gray bell icon in the conversation list.

Interface

IMCenter.getInstance().setConversationNotificationStatus(conversationType, targetId, notificationStatus, callback);

Parameters

ParameterTypeDescription
conversationTypeConversationTypeConversation type. Not supported for chatrooms (which disable notifications by default).
targetIdStringConversation ID
notificationStatusConversationNotificationStatusNotification status. DO_NOT_DISTURB enables silent mode. NOTIFY enables alerts.
callbackResultCallback<ConversationNotificationStatus>Callback interface

Code Example

ConversationType conversationType = ConversationType.PRIVATE;
String targetId = "Conversation ID";
// Enable Do Not Disturb
ConversationNotificationStatus notificationStatus = ConversationNotificationStatus.DO_NOT_DISTURB;

IMCenter.getInstance().setConversationNotificationStatus(conversationType, targetId, notificationStatus, new RongIMClient.ResultCallback<Conversation.ConversationNotificationStatus>() {
@Override
public void onSuccess(Conversation.ConversationNotificationStatus status) {

}

@Override
public void onError(RongIMClient.ErrorCode errorCode) {

}
});

Monitor Do Not Disturb Status Sync

The IM Service provides conversation status (pinned/Do Not Disturb) synchronization. Status listeners enable real-time updates to ensure multi-device consistency.

When conversation pinning or Do Not Disturb status syncs, the SDK triggers the onStatusChanged method in ConversationStatusListener. For details, see Multi-Device Sync for Pinned/Do Not Disturb.

public interface ConversationStatusListener {
void onStatusChanged(ConversationStatus[] conversationStatus);
}

Retrieve Conversation Do Not Disturb Status

Clients must use IMLib interfaces to actively fetch Do Not Disturb status data, as IMKit SDK doesn't directly expose this functionality. Implement status sync using underlying capabilities.

RongIMClient.getInstance().getConversationNotificationStatus(conversationType, targetId, callback);

Refer to IMLib documentation: Set Do Not Disturb by Conversation under Get Do Not Disturb Status for Specified Conversation.