我想使用Google Driveasserver來存儲應用程序數據。所以,我已將所有數據寫入文件,然後將該文件上傳到Drive。如何在Google雲端硬盤上保存應用數據?
代碼:
try {
// outputStream.write(bitmapStream.toByteArray());
outputStream.write(text.getBytes());
}
catch (IOException e1) {
Log.i(TAG, "Unable to write file contents.");
}
MetadataChangeSet metadataChangeSet = new MetadataChangeSet.Builder()
.setMimeType("text/txt").setTitle("testfile.txt").build();
IntentSender intentSender = Drive.DriveApi
.newCreateFileActivityBuilder()
.setInitialMetadata(metadataChangeSet)
.setInitialDriveContents(result.getDriveContents())
.build(mGoogleApiClient);
try {
startIntentSenderForResult(intentSender, REQUEST_CODE_CREATOR, null, 0, 0, 0);
}
catch (SendIntentException e) {
Log.i(TAG, "Failed to launch file chooser.");
}
是否有可能,只要將設備連接到互聯網,應用程序數據均不會與谷歌雲端硬盤中的數據同步? 我讀了約谷歌驅動器API,但無法理解:
1)如何同步發生? 2)我們是否可以與Google Drive中的應用文件夾中存儲的文件同步? 3)我是否需要將文件寫入Google雲端硬盤,否則我將不得不將文件保存到某個容器中,Google在連接到互聯網時會自行更新(如在iOS中)?
請指導我。
編輯
之前創建的驅動文件,我已經做了檢查。
Query query = new Query.Builder()
.addFilter(Filters.eq(SearchableField.MIME_TYPE, "text/plain"))
.addFilter(Filters.eq(SearchableField.TITLE, "appdata.txt")).build();
Drive.DriveApi.query(getGoogleApiClient(), query).setResultCallback(
metadataCallback);
final private ResultCallback<MetadataBufferResult> metadataCallback = new ResultCallback<MetadataBufferResult>() {
@Override
public void onResult(MetadataBufferResult result) {
metadata = result.getMetadataBuffer();
for (int i = 0; i < metadata.getCount(); i++) {
DriveFile file = Drive.DriveApi.getFile(getGoogleApiClient(),
metadata.get(i).getDriveId());
file.trash(getGoogleApiClient());
}
這是一個錯誤的方式進行?
中的說明問問自己什麼時候應用程序與驅動器同步至關重要?它在主頁上的暫停,OnCreate上?這是當你連接驅動器。 – SmulianJulian
我無法同步存儲在** App文件夾**中的文件。 – megha
@SmulianJulian我可以將文件保存到雲端硬盤,但每次創建具有相同元數據的新文件。如何將舊文件與新文件同步? – megha