ダウンロード
一括ダウンロードを行う例を以下に挙げます。
-
// Instantiate the target KiiObject. Uri objUri = Uri.parse("Set the URI of an existing KiiObject here"); KiiObject object = KiiObject.createByUri(objUri); // Specify the file destination. File localFile = new File( Environment.getExternalStorageDirectory(), "myImage.jpg"); try { // Start downloading. object.downloadBody(localFile); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. }
-
// Instantiate the target KiiObject. Uri objUri = Uri.parse("Set the URI of an existing KiiObject here"); KiiObject object = KiiObject.createByUri(objUri); // Specify the file destination. File localFile = new File( Environment.getExternalStorageDirectory(), "myImage.jpg"); // Start downloading. object.downloadBody(localFile, new KiiObjectBodyCallback() { @Override public void onTransferStart(KiiObject kiiObject) { } @Override public void onTransferProgress(KiiObject object, long completedInBytes, long totalSizeinBytes) { float progress = (float) completedInBytes / (float) totalSizeinBytes * 100.0f; } @Override public void onTransferCompleted(KiiObject kiiObject, Exception exception) { if (exception != null) { // Handle the error. return; } } });
ここでは以下の処理を実施しています。
createdByUri()
メソッドを実行して、KiiObject
インスタンスを作成。- ダウンロード対象ファイル(myImage.jpg)のリファレンスを作成。
downloadBody()
メソッドを実行して、ダウンロードを開始。
ノンブロッキング API の onTransferProgress()
メソッドは、転送の進捗状況に応じて呼び出されます。転送サイズが小さい場合は、1 回目の呼び出しで 100% の進捗を示すことがあります。
Object Body のダウンロードで外部記憶装置にアクセスする際、実行時パーミッションが必要になる場合があります。実装方法の詳細は、実行時パーミッションの取得 を参照してください。