Google云端硬盘Android SDK无法写入App文件夹

时间:2017-02-20 15:31:26

标签: google-drive-android-api

我想将我的应用数据保存在Google云端硬盘中,以便在用户的设备之间共享。

首先,如果没有文件我在Google云端硬盘中创建一个:

driveFileResult.getDriveFile().open(driveApiClient, DriveFile.MODE_WRITE_ONLY, null)

在回调中,我打开文件:

DriveContents contents = driveContentsResult.getDriveContents();
try {
     ParcelFileDescriptor parcelFileDescriptor = contents.getParcelFileDescriptor();

     FileOutputStream fileOutputStream = new FileOutputStream(parcelFileDescriptor
                    .getFileDescriptor());
     Writer writer = new OutputStreamWriter(fileOutputStream);
     writer.write("hello world");
} catch (IOException e) {
     e.printStackTrace();
}

contents.commit(driveApiClient, null, new ExecutionOptions.Builder().setConflictStrategy(ExecutionOptions.CONFLICT_STRATEGY_OVERWRITE_REMOTE).build())

在那个Callback中,我按照https://developers.google.com/drive/android/files#making_modifications描述的那样写入文件:

{{1}}

在提交的状态回调中,我获得了成功。

下次打开文件时,文件为空,元数据中的大小为0。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

刚做了快速测试。在提交之前肯定关闭OutputStreamWriter - writer.close();否则,你会得到一个空文件。