2016-09-10 67 views
0

我想備份和恢復我的sqlite數據庫。爲此,我使用谷歌驅動器API。我已經使用這個this演示代碼。所有作品都很完美我可以上傳和下載我的分貝,直到我卸載我的應用程序。Google Drive Sqlite db上傳不起作用

但後來我注意到一個奇怪的行爲。該方案是遵循

  • 輸入一些數據,SQLite的
  • 上傳我的SQLite數據庫驅動
  • 卸載我的應用程序

  • 重新安裝,並嘗試從驅動器下載文件。

    在這個時候我找不到任何文件從驅動器....搜索返回0總是......我不知道爲什麼。所有作品完美,如果我不卸載應用程序,只是清除數據。

這裏是我上傳的代碼....

public boolean createFile() { 
     DriveId dId = null; 
     String mimeType = MimeTypeMap.getSingleton().getExtensionFromMimeType("db"); 

     if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) 
      try { 
       DriveFolder pFldr = Drive.DriveApi.getAppFolder(mGoogleApiClient); 
       if (pFldr != null) { 
        File file = context.getDatabasePath(db.getDatabaseName()); 
        DriveContents cont = file2Cont(null, file); 
        MetadataChangeSet meta = new MetadataChangeSet.Builder().setTitle(Google_Drive_File). 
          setMimeType(mimeType).build(); 
        DriveFolder.DriveFileResult r1 = pFldr.createFile(mGoogleApiClient, meta, cont).await(); 
        DriveFile dFil = r1 != null && r1.getStatus().isSuccess() ? r1.getDriveFile() : null; 
        if (dFil != null) { 
         DriveResource.MetadataResult r2 = dFil.getMetadata(mGoogleApiClient).await(); 
         if (r2 != null && r2.getStatus().isSuccess()) { 
          dId = r2.getMetadata().getDriveId(); 
         } 
        } 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
       return false; 
      } 
     return dId == null ? false : true; 
    } 

請幫我....

+0

日誌中是否還有任何錯誤?請分享。 – Teyam

+0

不,沒有錯誤 –

回答

0

嗯,我已經解決了它....我沒有得到文件,因爲我在auth證書中使用了調試密鑰。所有工作完美,只要我改變我的調試密鑰與釋放。

+0

嗨,你可以分享我的方法 – rafeek