【发布时间】:2016-05-14 16:20:32
【问题描述】:
在我的应用程序中,我正在编写一个将本地数据库备份到 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==...。
【问题讨论】:
-
当您获得 mFolderDriveId 时,我建议您发出元数据提取请求并仅向用户显示文件夹名称。由于用户刚刚通过浏览他的驱动器选择了该文件夹,因此他已经有了足够的上下文。要获得完整路径,您需要一直访问所选文件夹的祖先,直到根目录,这对于具有 Drive FILE 范围的应用程序来说是不期望的。
标签: java android google-drive-api google-drive-android-api