找到一种方法将课程资料下载到Android手机

时间:2016-10-13 23:05:05

标签: java android google-classroom

有没有办法将google驱动器文件下载到自定义位置?我正在使用此代码来获取文件,

courses.get(0).getCourseMaterialSets().get(0).getMaterials().get(0).getDriveFile()

此函数返回文件类型输出。如何在本地保存?

或者有没有办法使用课堂API下载谷歌驱动器文件?

1 个答案:

答案 0 :(得分:0)

我认为使用Classroom API无法实现此目的。要从Google云端硬盘下载文件,请使用Android API for Drive检查下载文件教程。

  

下载文件

     

首选方法:使用alt = media

     

要下载文件,您需要向其发出授权的HTTP GET请求   文件的资源URL并包含查询参数alt = media。对于   例如:

GET https://www.googleapis.com/drive/v2/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
     

授权:持票人   ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs正在下载文件   要求用户至少具有读取权限。此外,您的应用程序   必须使用允许读取文件内容的范围进行授权。   例如,使用drive.readonly.metadata范围的应用程序不会   被授权下载文件内容。用户进行编辑   权限可以通过设置限制只读用户下载   限制标签为真。

以下是指南的摘录:

/**
   * Download a file's content.
   *
   * @param service Drive API service instance.
   * @param file Drive File instance.
   * @return InputStream containing the file's content if successful,
   *         {@code null} otherwise.
   */
  private static InputStream downloadFile(Drive service, File file) {
    if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
      try {
        // uses alt=media query parameter to request content
        return service.files().get(file.getId()).executeMediaAsInputStream();
      } catch (IOException e) {
        // An error occurred.
        e.printStackTrace();
        return null;
      }
    } else {
      // The file doesn't have any content stored on Drive.
      return null;
    }
  }