[英]Convert DriveId to human readable path
在我的應用中,我正在編寫一項活動,以將本地數據庫備份到Google雲端硬盤。 我讓用戶選擇使用Drive的intentPicker
將文件保存到的文件夾,並將結果保存在我的OnActivityResult
:
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
switch (requestCode) {
// REQUEST_CODE_PICKER
case 2:
intentPicker = null;
if (resultCode == RESULT_OK) {
//Get the folder's drive id
DriveId mFolderDriveId = data.getParcelableExtra(
OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
uploadToDrive(mFolderDriveId);
}
上傳文件后,我想向用戶顯示文件的保存位置。 因此, 我需要將文件夾的DriveId轉換為/ drive / MyBackups / May之類的可讀路徑。
我已經嘗試過driveId.toString
但是它只返回一個無用的數字和字母的字符串,例如DriveId:CASDFAD2Jmasdf==...
使用文件夾的Drive API方法時,請注意Drive Rest API- 使用文件夾中給出的這些重要鍵:
application/vnd.google-apps.folder
且沒有擴展名的文件。 使用這些給定的鍵,您可以在查詢中添加與要查找的文件有關的父ID,然后可以遵循此SO帖子中給出的邏輯- 通過“完整路徑”查找文件的正確方法是什么Google Drive API v2 。
希望它對您有用。
正如前所說,即使有可能,顯示出不期望一個文件夾的完整路徑與驅動器文件范圍內的應用程序。 因此,我解決了該問題,請求元數據並僅顯示標題。
private void setBackupFolderTitle(DriveId id){
id.asDriveFolder().getMetadata((mGoogleApiClient)).setResultCallback(
new ResultCallback<DriveResource.MetadataResult>() {
@Override
public void onResult(DriveResource.MetadataResult result) {
if (!result.getStatus().isSuccess()) {
showErrorDialog();
return;
}
Metadata metadata = result.getMetadata();
// Set folder title in TextView
folderTextView.setText(metadata.getTitle());
}
}
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.