2017-02-28 100 views
0

我使用標準API(而不是REST API),當我備份文件然後恢復時,它工作....當我重新安裝應用程序時會發生問題。重新安裝後,在AppFolder文件不被應用所看到的,但存在驅動器AppFolder備份丟失

Query query = new Query.Builder().addFilter(Filters.eq(SearchableField.TITLE, Tags.DB_DATA)).addFilter(Filters.eq(SearchableField.TRASHED, false)).build(); 
     Drive.DriveApi.query(GAPI, query).setResultCallback(new ResultCallback<DriveApi.MetadataBufferResult>() { 
      @Override 
      public void onResult(@NonNull DriveApi.MetadataBufferResult result) { 
       loadBackups(result.getMetadataBuffer()); 
       result.release(); 
      } 
     }); 

這是到目前爲止的代碼(內loadBackups即時通訊創建與細節的HashMap的ArrayList,沒什麼特別的),但我已經嘗試過listChildren和queryChildren但同...

在某一點上,可以看出,但是當它發生了,我沒有趕上,但我知道肯定後重新安裝,它不能被看作

+0

可能與[文章](http://stackoverflow.com/q/24916490/4625829)。你之前看過嗎? –

+0

謝謝,答案似乎很有趣,我很驚訝,我沒有發現這個...我會嘗試並返回 – Prophet

回答

0

不夠代表評論。不過,我懷疑你遇到的問題是,設計上用戶從Drive中刪除應用程序文件夾的最後一次安裝應用程序。

所以你的解決方案需要備份到一個不屬於應用程序的地方。

我在多次安裝中遇到了進一步的問題,如果您在第二臺設備上安裝應用程序,Drive需要「一段時間」(不知道多長時間)將應用程序文件夾傳播到Drive。我已經使用它來在設備之間同步數據,但是當同步可能發揮作用時,它在Drive的手中。

+1

不,我已經檢查並卸載後,應用程序文件夾保持不變。現在7個小時過去了,當我創建另一個備份時發生了備份 – Prophet

1

儘量把這些代碼行onConnected方法,

try { 
         Drive.DriveApi.requestSync(mGoogleApiClient) 
           .setResultCallback(syncCallBack); 
        } catch (IllegalStateException ex) { 

        } 

然後

private ResultCallback<Status> syncCallBack = new ResultCallback<Status>() { 
    @Override 
    public void onResult(@NonNull Status status) { 
     if (!status.isSuccess()) { 
      if (DriveStatusCodes.DRIVE_RATE_LIMIT_EXCEEDED == status.getStatusCode()) { 
      } 
     } 
     Query query = new Query.Builder() 
       .addFilter(Filters.contains(SearchableField.TITLE, "abc.txt")) 
       .build(); 
     Drive.DriveApi.query(mGoogleApiClient, query) 
       .setResultCallback(metadataCallback); 
    } 
};