我正在尝试在我的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文档并且它们很乱,而且这些类没有适当的文档。他们提供的样品非常混乱。
任何想法为什么应用程序没有响应?我究竟做错了什么?任何帮助表示赞赏。感谢。
答案 0 :(得分:0)