2017-02-20 7 views
0

アプリのデータをGoogleドライブに保存して、ユーザーのデバイス間で共有したいとします。GoogleドライブAndroid SDKでアプリフォルダに書き込むことはできません

まず

私はGoogleドライブで1を作成するファイルがない場合:

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

と説明するように、そのコールバックに私はファイルへの書き込み:私は、ファイルを開くコールバックで

Drive.DriveApi.getAppFolder(driveApiClient) 
      .createFile(driveApiClient, changeSet, 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()を閉じてください。そうしないと、空のファイルが取得されます。

関連する問題