Skip to main content

Download media files

The Nexconn SDK provides media file download with support for resumable downloads, pause, and cancel.

Supported media message types

  • File messages (FileMessage)
  • Image messages (ImageMessage)
  • GIF messages (GIFMessage)
  • High-quality voice messages (HDVoiceMessage)
  • Short video messages (ShortVideoMessage)

Download a media file

Use message.downloadMedia() to download media files. The SDK automatically reads the remote URL from the message object.

kotlin
NCEngine.addMessageHandler("myHandler", object : MessageHandler {
override fun onMessageReceived(event: MessageReceivedEvent) {
when (event.message.content) {
is ImageMessage -> {
event.message.downloadMedia(object : DownloadMediaMessageHandler {
override fun onProgress(message: Message, progress: Int) {
Log.d("Download", "Progress: $progress%")
}
override fun onSuccess(message: Message) {
val localPath = (message.content as? ImageMessage)?.localPath
Log.d("Download", "Download complete, path: $localPath")
}
override fun onError(message: Message, error: NCError) {
Log.e("Download", "Failed: ${error.message}")
}
override fun onCanceled(message: Message) {
Log.d("Download", "Download canceled")
}
})
}
}
}
})

Cancel a download

Use message.cancelDownloadingMedia() to cancel an active download.

kotlin
message.cancelDownloadingMedia { error ->
if (error == null) Log.d("Download", "Canceled")
}

Pause a download

Use message.pauseDownloadingMedia() to pause an active download (supports resumable downloads).

kotlin
message.pauseDownloadingMedia { error ->
if (error == null) Log.d("Download", "Paused")
}

Get download info

Use BaseChannel.getMediaDownloadInfo() to check the download status (only valid during an active download). Pass the media file's remote URL as the identifier.

kotlin
val mediaUrl = (message.content as? ImageMessage)?.remoteUrl ?: return
BaseChannel.getMediaDownloadInfo(mediaUrl) { downloadInfo, error ->
if (error == null && downloadInfo != null) {
Log.d("Download", "Download info: $downloadInfo")
}
}

Parameters

downloadMedia()

ParameterTypeDescription
handlerDownloadMediaMessageHandler?The download lifecycle callback.

DownloadMediaMessageHandler

MethodDescription
onProgress(message, progress)Called with download progress (0–100).
onSuccess(message)Called when download succeeds. The message.content local path is populated.
onError(message, error)Called when download fails.
onCanceled(message)Called when the download is canceled.

Important notes

  • Ensure storage permissions are granted before downloading.
  • After download completes, getMediaDownloadInfo() returns null.
  • Resumable downloads are supported — pause and call downloadMedia() again to resume.
  • After canceling, you must restart the download from the beginning.