【发布时间】:2014-09-17 19:36:52
【问题描述】:
将文件从 android 上传到 Google 驱动器失败。即使返回的状态是成功,似乎createFile 也不起作用。我从 Google API 获得的实际状态错误代码和消息是错误代码 8,错误消息:Provided DriveId is not valid
我也无法在相关用户 Google 驱动器上找到该文件(使用 Google 驱动器的 Web 界面)。
我也尝试在创建文件回调中使用Drive.DriveApi.fetchDriveId(m_api, m_file.getDriveId().toString())(而不是调用openContents),它也失败了。
相关代码如下,任何帮助将不胜感激!
public void createFile() {
Drive.DriveApi.newContents(m_api).setResultCallback(contentsCallback);
}
final private ResultCallback<ContentsResult> contentsCallback = new ResultCallback<ContentsResult>() {
@Override
public void onResult(ContentsResult result) {
if (handleError(result.getStatus())) {
return;
}
Contents contents = result.getContents();
MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
.setTitle("aaab").setMimeType("text/plain")
.setStarred(true).build();
// create a file on root folder
Drive.DriveApi.getRootFolder(m_api)
.createFile(m_api, changeSet, contents)
.setResultCallback(fileCallback);
}
};
final private ResultCallback<DriveFileResult> fileCallback = new ResultCallback<DriveFileResult>() {
@Override
public void onResult(DriveFileResult result) {
if (handleError(result.getStatus())) {
return;
}
m_file = result.getDriveFile();
m_file.openContents(m_api, DriveFile.MODE_READ_ONLY, null)
.setResultCallback(updateCallback);
}
};
final private ResultCallback<ContentsResult> updateCallback = new ResultCallback<ContentsResult>() {
@Override
public void onResult(ContentsResult result) {
// Getting error here
if (handleError(result.getStatus())) {
return;
}
...
【问题讨论】: