[英]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.