2017-02-20 54 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();否則,你會得到一個空文件。

相關問題