/ SDKs / Android
SDKs
Chat SDKs Android v4
Chat SDKs Android
Chat SDKs
Android
Version 4

Create a scheduled message

Copy link

You can create a scheduled user message to send at a later time by passing ScheduledUserMessageCreateParams as an argument to the createScheduledUserMessage() method.

KotlinKTX
// Creates a scheduled user message after 5 minutes.
val params = ScheduledUserMessageCreateParams(
    scheduledAt = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5)
).apply {
    message = "Text message"
    translationTargetLanguages = listOf("en", "ko")
    data = null
    customType = null
    mentionType = MentionType.USERS
    mentionedUserIds = listOf(MENTIONED_USER_ID)
    metaArrays = null
    appleCriticalAlertOptions = null
    pushNotificationDeliveryOption = null
}

// The returned message is a pending message instance for the scheduled message.
// It can be used in the same way as pending message from channel.sendUserMessage().
val pendingScheduledUserMessage = groupChannel.createScheduledUserMessage(params) { scheduledUserMessage, e ->
    if (e != null) {
        // Handle error.
    }

    // A user message has been successfully scheduled.
    // scheduledUserMessage.scheduledInfo will contain scheduled information.
    // scheduledUserMessage.sendingStatus will be SendingStatus.SCHEDULED.
}

You can also create a scheduled file message to send at a later time by passing ScheduledFileMessageCreateParams as an argument to the createScheduledFileMessage() method.

KotlinKTX
// Create a scheduled file message.
val params = ScheduledFileMessageCreateParams(
    scheduledAt = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5)
).apply {
    // Set `fileUrl` or `file` exclusively.
    fileUrl = FILE_URL
    file = FILE
    
    fileName = "Name of the file"
    mimeType = MIME_TYPE
    fileSize = FILE_SIZE
    thumbnailSizes = listOf(ThumbnailSize(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT))
    data = null
    customType = null
    mentionType = MentionType.USERS
    mentionedUserIds = listOf(MENTIONED_USER_ID)
    metaArrays = null
    appleCriticalAlertOptions = null
    pushNotificationDeliveryOption = null
}

// The returned message is a pending message instance for the scheduled message.
// It can be used in the same way as pending message from channel.sendFileMessage().
val pendingScheduledFileMessage = groupChannel.createScheduledFileMessage(params) { scheduledFileMessage, e ->
    if (e != null) {
        // Handle error.
    }

    // A file message has been successfully scheduled.
    // scheduledUserMessage.scheduledInfo will contain scheduled information.
    // scheduledUserMessage.sendingStatus will be SendingStatus.SCHEDULED.
}