如何在Android中初始化Drive对象以执行对Google云端硬盘的请求?

时间:2012-09-19 03:23:08

标签: java android google-drive-api

  

可能重复:
  Android Open and Save files to/from Google Drive SDK

我正在尝试在我的Android应用程序中从Google云端硬盘上传和下载文件。

我可以使用AccountManager.getAuthToken()为用户的Google帐户获取授权令牌字符串。

现在,我不知道如何使用该令牌初始化Drive对象以开始向Google云端硬盘发送请求。我使用了Google Drive稀缺文档中的示例中的以下代码,但它不起作用。显然,通话成功,但当我尝试上传文件时,它会挂起,直到Android告诉我应用程序没有响应。

GoogleCredential credential = new GoogleCredential().setAccessToken(authToken);
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
Drive drive = null;

drive = Drive.builder(httpTransport, jsonFactory)
    .setApplicationName(APP_NAME)
    .setHttpRequestInitializer(credential)
    .setJsonHttpRequestInitializer(new GoogleKeyInitializer(API_KEY))
    .build();

要上传某个文件,请执行以下操作:

try
{
    // local file
    java.io.File fileLocal = new java.io.File(FILE_NAME);

    // remote file

    File remoteFile = new File();
    remoteFile.setTitle(fileLocal.getName());
    remoteFile.setDescription("Text File");
    remoteFile.setMimeType("text/plain");

    // load the content of the local file into the remote content
    FileContent remoteFileContent = new FileContent("text/plain", fileLocal);

    // upload the file into Google Drive
    File resultFile = drive.files().insert(remoteFile, remoteFileContent).execute();

    lblStatus.setText("Upload successful with file ID: " + resultFile.getId());
}
catch (Exception e)
{
    // error handling
    ...
}

我已经阅读了Google API文档并且它们很乱,而且这些类没有适当的文档。他们提供的样品非常混乱。

任何想法为什么应用程序没有响应?我究竟做错了什么?任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

几周前我遇到了这个问题。看看这里,我写了一个非常广泛的解释,说明如何使Google Drive主要在Android上运行。 (我主要是因为文件下载似乎没有得到适当的授权......)

Android Open and Save files to/from Google Drive SDK