1. 다운로드 준비
SDK 초기화 및 인증, 저장소 권한 확인, 디바이스 가용 용량 체크 등 콘텐츠 다운로드를 위한 준비 단계에 대해 설명합니다.
이 문서의 모든 예제 코드는 공식 샘플 앱인 kollus_player_v2_android를 바탕으로 작성되었습니다.
KollusStorage 초기화
샘플 애플리케이션은 내부 및 외부 저장소 관리를 위해 MultiKollusStorage 인스턴스를 만들고, SD 카드의 Mount/Unmount 상태 변화 이벤트에 대응합니다.
개발 프로젝트 연동 시에도 이와 동일한 구조적 패턴 구성을 권장합니다.
// BaseActivity.java
mMultiStorage = MultiKollusStorage.getInstance(getApplicationContext());
mMultiStorage.setCertification(
KollusConstants.KEY, // 카테노이드에서 발급받은 SDK 키
KollusConstants.EXPIRE_DATE, // 인증 만료일 설정 (예: "2050/12/31")
isTablet); // 디바이스 유형 (true: 태블릿, false: 모바일)
int nRet = mMultiStorage.getErrorCode();
if (nRet != ErrorCodes.ERROR_OK) {
// ERROR_INCORRECT_AUTH_KEY 등 오류 발생 시 키 만료 및 오입력 안내 후 프로세스 종료 처리
}
// 이벤트 감지를 위한 리스너 콜백 등록
mMultiStorage.registerKollusStorageListener(mKollusStorageListener);
mMultiStorage.registerKollusPlayerDRMListener(mKollusPlayerDRMListener);
mMultiStorage.registerSDStateChangeListener(mSDCardStateChangeListener);
setCertification 메서드가 호출되면 SDK에 의해 다음 작업이 순차적으로 실행됩니다.
KollusStorage.initialize(key, expireDate, packageName)호출을 통한 SDK 키 검증- 등록된 개별 저장소 경로마다
storage.setDevice(path, isTablet)연동을 통한 디바이스 바인딩
저장소 권한 및 용량 확인
콘텐츠 다운로드 작업을 진행하기 위해 애플리케이션 사양 매니페스트 및 시스템 런타임 환경에 유효한 권한 명시와 남은 디스크 가용 용량 체크를 적 용해야 합니다.
- 외부 저장소 접근 권한:
AndroidManifest.xml내READ_EXTERNAL_STORAGE권한을 선언합니다. API 33 이상 환경의 경우 미디어별 상세 권한인READ_MEDIA_VIDEO등을 처리해야 합니다. - 포그라운드 서비스 권한: 앱 백그라운드 전환 상태에서도 다운로드 및 재생 상태를 유지하기 위한 포그라운드(Foreground) 제어 권한을 설정합니다.
- 디바이스 가용 용량 확인:
Utils.getAvailableMemorySize(path)메서드를 호출하여 남은 디스크 용량을 확인합니다. - 다운로드 거절 임계값 설정: 샘플 앱 가이드 기준
MIN_FREE_SIZE = 150 MB상수를 정의합니다. 콘텐츠 파일 크기 + 150MB보다 현재 디스크 여유 공간이 작으면ERROR_STORAGE_FULL를 반환하고 작업을 거절합니다. - 다운로드 상태 유지 락 제어: 다운로드 중 절전 모드 및 Wi-Fi 연결 끊김 방지를 위해
PowerManager.WakeLock과WifiManager.WifiLock를 사용합니다.