驱动器REST API V3 Java包装器-进度上传

时间:2019-01-03 08:23:37

标签: java android google-drive-api google-drive-android-api

我正在尝试使用V3 API将新文件上传到驱动器帐户,并获取上传进度。我当前的(工作)代码如下:

 val fileMetadata = File()
        fileMetadata.name = newItemName
        fileMetadata.parents = mutableListOf(destFolder.remoteId)

        val osFile = java.io.File(filePath)
        val mediaContent = FileContent(getMimeType(filePath), osFile)

        val file = googleDriveService.files().create(fileMetadata, mediaContent)
                .setFields("*")
                .execute()

是否可以在当前解决方案中添加某种进度侦听器,或者我需要使用其他服务(例如MediaHttpUploader)?

1 个答案:

答案 0 :(得分:0)

您可以参考使用CustomProgressListener类的documentation

class CustomProgressListener implements MediaHttpDownloaderProgressListener {
  public void progressChanged(MediaHttpDownloader downloader) {
    switch (downloader.getDownloadState()) {
      case MEDIA_IN_PROGRESS:
        System.out.println(downloader.getProgress());
        break;
      case MEDIA_COMPLETE:
        System.out.println("Download is complete!");
    }
  }
}

OutputStream out = new FileOutputStream("/tmp/driveFile.jpg");

DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
request.executeMediaAndDownloadTo(out);

以下是您可以使用的其他参考: