ダウンロード

一括ダウンロードを行う例を以下に挙げます。

  • // 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 のダウンロードで外部記憶装置にアクセスする際、実行時パーミッションが必要になる場合があります。実装方法の詳細は、実行時パーミッションの取得 を参照してください。