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
Parameter | Type | Description |
---|---|---|
conversationType | ConversationType | Conversation type. Not supported for chatrooms (which disable notifications by default). |
targetId | String | Conversation ID |
notificationStatus | ConversationNotificationStatus | Notification status. DO_NOT_DISTURB enables silent mode. NOTIFY enables alerts. |
callback | ResultCallback<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.