![](/img/trans.png)
[英]How to get DriveId of created folder in Google Drive Android API
[英]Android: Get DriveId for restore
我的應用程序在 Google Drive 上進行了基於雲的備份。 備份順利進行。
我使用以下代碼進行備份:
void saveToDrive() {
// Code to upload file
DriveId mDriveId = metadataResult.getMetadata().getDriveId();
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(getApplicationContext().getPackageName(), MODE_PRIVATE);
sharedPreferences.edit().putString("DriveId", mDriveId.encodeToString()).apply();
....
}
如您所見,我在備份時將DriveId
保存到SharedPreferences
。 所以使用那個DriveId
,我可以恢復為:
void readFromDrive(DriveId mDriveId) { // DriveId is not available after app reinstall!!
// Code to download file and restore
}
我的恢復操作需要DriveId
才能下載備份文件。 我想在重新安裝應用程序時觸發恢復。 但是,我無法獲得DriveId
以便我可以下載所需的文件。
我怎么做? 拜托,我迫切需要一些幫助。
謝謝。
我通過首先使用代碼查詢 Google Drive 的內容來解決它:
public class GDriveQuery extends BaseDemo {
@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);
Query query = new Query.Builder()
.addFilter(Filters.eq(SearchableField.TITLE, "field"))
.addFilter(Filters.not(Filters.eq(SearchableField.TRASHED, true)))
.build();
Drive.DriveApi.query(getGoogleApiClient(), query)
.setResultCallback(metadataCallback);
}
final private ResultCallback<DriveApi.MetadataBufferResult> metadataCallback =
new ResultCallback<DriveApi.MetadataBufferResult>() {
@Override
public void onResult(DriveApi.MetadataBufferResult result) {
if (!result.getStatus().isSuccess()) {
showMessage("Problem while retrieving results");
return;
}
System.out.println("SUCCESS!!");
MetadataBuffer mdb;
mdb = result.getMetadataBuffer();
for (Metadata md : mdb) {
System.out.println(md.getDriveId().encodeToString());
}
}
};
}
上面的代碼返回給我DriveId
。 然后使用該DriveId
我使用了上面問題中發布的函數readFromDrive(driveId)
。
有用!!
謝謝大家的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.