1. ダウンロードの準備
SDK の初期化および認証、ストレージ権限の確認、デバイスの利用可能容量チェックなど、コンテンツダウンロードに必要な準備手順について説明します。
このドキュメントのすべてのサンプルコードは、公式サンプルアプリ kollus_player_v2_android をもとに作成されています。
KollusStorage の初期化
サンプルアプリケーションは、内部および外部ストレージの管理のために MultiKollusStorage イン スタンスを作成し、SD カードの Mount/Unmount 状態変化イベントに対応します。
開発プロジェクトへの組み込み時も、同じ構造パターンの構成を推奨します。
// BaseActivity.java
mMultiStorage = MultiKollusStorage.getInstance(getApplicationContext());
mMultiStorage.setCertification(
KollusConstants.KEY, // SDK key issued by Catenoid
KollusConstants.EXPIRE_DATE, // Set authentication expiration date (e.g., "2050/12/31")
isTablet); // Device type (true: tablet, false: mobile)
int nRet = mMultiStorage.getErrorCode();
if (nRet != ErrorCodes.ERROR_OK) {
// If an error such as ERROR_INCORRECT_AUTH_KEY occurs, notify the user of key expiration or incorrect input, then terminate the process
}
// Register listener callbacks for event detection
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を使用します。