DownloadManager
다운로드 매니저를 사용하기 전에 AndroidManifest.xml에 브로드캐스트 수신기를 선언합니다.
<receiver
android:name="com.newin.nplayer.sdk.DownloadCompleteReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
</intent-filter>
</receiver>
import com.newin.nplayer.sdk.DownloadManager
class DownloadManager
다운로드 매니저 클래스는 아래와 같은 속성과 메서드를 가지고 있습니다.
정적 속성
shared
companion object {
val shared: DownloadManager
}
타입 | 설명 | 설정 |
---|---|---|
DownloadManager | 현재 활성화된 다운로드 매니저에 접근하기 위한 속성 | 불가능 |
다운로드 매니저에 접근하기 위한 정적 속성입니다. 아래에 언급되는 속성 및 메서드를 호출할 때, DownloadManager.shared를 사용하여 접근할 수 있습니다.
인터페이스
DownloadManager.Listener
interface Listener {
fun onItemAdded(item: DownloadItem) {}
fun onItemRemoved(item: DownloadItem) {}
fun onStatusChanged(item: DownloadItem) {}
fun onProgressUpdated(item: DownloadItem) {}
}
다운로드와 관련된 이벤트 처리를 위한 인터페이스입니다. 자세한 내용은 DownloadManager.Listener를 참고하세요.
속성
downloadsUri
var downloadsUri: Uri
타입 | 설명 | 설정 |
---|---|---|
android.net.Uri | 다운로드된 아이템이 저장되는 최상위 디렉토리 | 불가능 |
다운로드된 아이템이 저장되는 디렉토리 중 최상위 디렉토리를 나타내는 속성입니다.
items
val items: List<DownloadItem>
타입 | 설명 | 설정 |
---|---|---|
List<DownloadItem> | 현재 다운로드 목록에 있는 아이템들 | 불가능 |
현재 다운로드 목록에 있는 아이템들을 반환하는 속성입니다.
maxParallelDownloads
var maxParallelDownloads: Int
타입 | 설명 | 설정 | 기본값 |
---|---|---|---|
Int | 동시에 다운받을 수 있는 아이템 최대 개수 | 가능 | 3 |
동시에 받을 수 있는 아이템의 최대 개수를 반환하거나 설정합니다.
메서드
add
fun add(mediaItem: MediaItem, allowsCellularAccess: Boolean = true): DownloadItemId
파라미터 | 타입 | 설명 | 필수 | 기본값 |
---|---|---|---|---|
mediaItem | MediaItem | 추가하고자 하는 미디어 아이템 | O | 없음 |
allowsCellularAccess | Boolean | 다운로드 시 셀룰러 데이터 사용 여부 | X | true |
다운로드를 할 미디어 아이템을 추가합니다. 현재 다운로드가 진행되고 있는 아이템의 수가 maxParallelDownloads 보다 적으면 바로 다운로드를 시작합니다. 셀룰러 데이터 사용을 허용하지 않으려면, allowsCellularAccess를 false로 설정하여 호출하십시오.
getItemsByStatus
fun getItemsByStatus(status: DownloadItem.Status): List<DownloadItem>
파라미터 | 타입 | 설명 |
---|---|---|
status | DownloadItem.Status | 가져오고자 하는 아이템의 다운로드 상태 |
특정 다운로드 상태의 아이템 목록을 가져오기 위해서 사용하는 메서드입니다.
pause
fun pause(id: DownloadItemId)
파라미터 | 타입 | 설명 |
---|---|---|
id | Id | 일서 정지할 다운로드 아이템의 아이디 |
다운로드를 일시 정지할 때 사용하는 메서드입니다.
pauseAll
fun pauseAll()
다운로드 목록에 있는 모든 아이템의 다운로드를 일시 정지하게 하는 메서드입니다.
remove
fun remove(id: DownloadItemId)
파라미터 | 타입 | 설명 |
---|---|---|
id | Id | 제거할 다운로드 아이템의 아이디 |
다운로드 목록에서 아이템을 지울 때 사용하는 메서드입니다.
removeAll
fun removeAll()
다운로드 아이템 목록을 모두 지우는 메서드입니다.
removeCompleted
fun removeCompleted()
다운로드가 완료된 아이템을 목록에서 모두 지우는 메서드입니다.
resume
fun resume(id: DownloadItemId)
파라미터 | 타입 | 설명 |
---|---|---|
id | Id | 다운로드 재개할 아이템의 아이디 |
다운로드를 일시 정지한 아이템의 다운로드를 재개하는 메서드입니다.
resumeAll
fun resumeAll()
일시 정지한 모든 아이템의 다운로드를 재개하는 메서드입니다.
addListener
fun addListener(listener: Listener)
파라미터 | 타입 | 설명 |
---|---|---|
listener | DownloadManager.Listener | 추가할 다운로드 매니저 리스너 |
다운로드 매니저 리스너를 추가하기 위한 메서드입니다. 리스너를 추가한 후, 해당 리스너가 더 이상 필요 없을 때는 반드시 removeListener() 메서드를 사용해서 제거하세요.
removeListener
fun removeListener(listener: Listener)
파라미터 | 타입 | 설명 |
---|---|---|
listener | DownloadManager.Listener | 제거할 다운로드 매니저 리스너 |
다운로드 매니저 리스너를 제거하기 위한 메서드입니다.