简介
本文档提供关于文件下载的 API 概览以及 SDK 示例代码。
高级下载
功能说明
该下载方法内部会自动进行下载到本地或流以及续传的逻辑,生成的 downloadTask 可以供外部进行暂停、恢复、取消等。
示例代码
//下载到本地的文件val file = File.createTempFile("dowloadBigMedia", ".jpg")//获取下载任务val downloadTask = smh.download(//要下载的文件名称name = "uploadBigMedia.jpg",//所在文件夹,默认是根目录下dir = Directory(),//要下载到的本地文件路径localFullPath = file.absolutePath,//状态监听器stateListener = object : SMHStateListener {override fun onStateChange(request: SMHRequest, state: SMHTransferState) {Log.i("testDownloadTask", "onStateChange $state")}},//进度监听器progressListener = object: SMHProgressListener {override fun onProgressChange(request: SMHRequest, progress: Long, target: Long) {Log.i("testDownloadTask", "Progress change $progress/$target")}},//结果监听器resultListener = object: SMHResultListener {override fun onSuccess(request: SMHRequest, result: SMHResult) {Log.i("testDownloadTask", "onSuccess")//下载结果if(result is DownloadFileResult){Log.i("testDownloadTask", "bytesTotal: ${result.bytesTotal}")Log.i("testDownloadTask", "content: ${result.content.toString()}")Log.i("testDownloadTask", "crc64: ${result.crc64}")Log.i("testDownloadTask", "key: ${result.key}")Log.i("testDownloadTask", "meta: ${result.meta?.entries?.joinToString()}")}}override fun onFailure(request: SMHRequest,smhException: SMHException?,smhClientException: SMHClientException?) {Log.i("testDownloadTask", "onFailure $smhException, $smhClientException")}})launch {delay(5000)//暂停下载任务downloadTask.pause()}//开始下载任务downloadTask.start()delay(2000)//恢复下载任务downloadTask.resume()