Там нет 'commitAndCloseContents' в GDAA. Существует метод commit(), который используется в любое время, когда вам нужно получить доступ к содержимому файла. Пожалуйста, см. this для стандартного использования commit() и discard(). В этом контексте он служит призывом «закрыть» контент после его чтения/записи (вы также можете увидеть использование here в (0) и обновление (...) примитивов).
Другое использование для commit() - это сценарий, в котором вам необходимо получать события завершения, которые сообщают вам, когда ваши изменения (контент, метаданные) были продвинуты на Диске. См. this.
Для полноты здесь приведен фрагмент кода, показывающий типичное использование commit()/discard().
GoogleApiClient mGAC;
...
/**************************************************************************
* update file in GOODrive
* @param df drive file
* @param titl new file name (optional)
* @param mime new mime type (optional)
* @param file new file content (optional)
* @return success status
*/
boolean update(DriveFile df, String titl, String mime, String desc, File file) {
Boolean bOK = false;
if (mGAC != null && mGAC.isConnected() && df != null) try {
Builder mdBd = new Builder();
if (titl != null) mdBd.setTitle(titl);
if (mime != null) mdBd.setMimeType(mime);
if (desc != null) mdBd.setDescription(desc);
MetadataChangeSet meta = mdBd.build();
MetadataResult r1 = df.updateMetadata(mGAC, meta).await();
if ((r1 != null) && r1.getStatus().isSuccess() && file != null) {
DriveContentsResult r2 = df.open(mGAC, DriveFile.MODE_WRITE_ONLY, null).await();
if (r2.getStatus().isSuccess()) {
DriveContents cont = file2Cont(r2.getDriveContents(), file);
Status r3 = cont.commit(mGAC, meta
//enable if you need COMPLETION EVENTS
// ,new ExecutionOptions.Builder() .setNotifyOnCompletion(true).build()
).await();
bOK = (r3 != null && r3.isSuccess());
}
}
} catch (Exception e) { e.printStackTrace(); }
return bOK;
}
/***********************************************************************
* get file contents
* @param df drive file
* @return file's content/null on fail
*/
InputStream read(DriveFile df) {
InputStream is = null;
if (mGAC != null && mGAC.isConnected() && df != null) try {
DriveContentsResult rslt = df.open(mGAC, DriveFile.MODE_READ_ONLY, null).await();
if ((rslt != null) && rslt.getStatus().isSuccess()) {
DriveContents cont = rslt.getDriveContents();
is = cont.getInputStream();
cont.discard(mGAC); // or cont.commit(); they are equiv if READONLY
}
} catch (Exception e) { e.printStackTrace(); }
return is;
}
Good Luck