2015-05-14 253 views
1

我想使用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()); 
} 

這是一個錯誤的方式進行?

+0

中的說明問問自己什麼時候應用程序與驅動器同步至關重要?它在主頁上的暫停,OnCreate上?這是當你連接驅動器。 – SmulianJulian

+0

我無法同步存儲在** App文件夾**中的文件。 – megha

+0

@SmulianJulian我可以將文件保存到雲端硬盤,但每次創建具有相同元數據的新文件。如何將舊文件與新文件同步? – megha

回答

3

newCreateFileActivityBuilder()將開始一個活動,讓用戶在他們的Drive中選擇一個位置來創建文件。 如果你想使用應用程序文件夾,你需要按照https://developers.google.com/drive/android/appfolder

+0

我遵循了上述網站上的說明。我能夠保存我的文件,但每次創建新文件而不是替換舊文件。是否有可能取代/編輯應用程序/根文件夾中的舊文件? – megha

+1

是的。請參閱https://developers.google.com/drive/android/files#writing_files – Ofir

相關問題