2017-02-20 55 views
0

我想将我的应用程序数据保存在Google云端硬盘中以在用户的​​设备之间共享。Google Drive Android SDK无法写入应用程序文件夹

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

Drive.DriveApi.getAppFolder(driveApiClient) 
      .createFile(driveApiClient, changeSet, null) 

在回调我打开文件:

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

而在回调我写文件的描述https://developers.google.com/drive/android/files#making_modifications

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()) 

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

下一次我打开的文件的文件是空的,并且在元数据的大小为0

我到底做错了什么?

+0

尝试关闭'OutputStreamWriter'。你如何阅读文件?你怎么知道它是空的?您可以将范围从'appDataFolder'移开,以便进行视觉检查。此外,通过GDAA编写的文件将在某个时间后同步到服务器,这是不受您控制的。 – Cheticamp

回答

1

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

相关问题