如何从Android上的Google云端硬盘中的文件或文件夹中获取元数据?

时间:2016-10-23 06:29:07

标签: android google-drive-api

我想从Android设备上的Google云端硬盘中的文件或文件夹中检索元数据,以获取deviceID或resourceID,然后我可以将文件下载到设备的本地存储中。我的应用程序的问题是,应用程序不需要用户交互。这意味着,只需告诉应用程序名称,然后应用程序将尝试在每个目录中查找文件并下载它。 我尝试使用query (link)按照快速入门教程,但它只返回现有文件的名称。

再次注意:用户不需要选择文件或文件夹,只需告诉文件名即可。文件或文件夹也是由应用程序创建的。

1 个答案:

答案 0 :(得分:0)

  

如何从Android上的Google云端硬盘中的文件或文件夹中获取元数据?

根据Working with File and Folder Metadata

元数据封装在Metadata类中,包含有关文件或文件夹的所有详细信息,包括标题,MIME类型以及文件是否可编辑,加星标或已删除。通过调用DriveResource.getMetadata方法为DriveResource获取元数据。

以下是文档的摘录:

/**
 * An activity to retrieve the metadata of a file.
 */
public class RetrieveMetadataActivity extends BaseDemoActivity implements
        ResultCallback {

    @Override
    public void onConnected(Bundle connectionHint) {
        DriveFile file = Drive.DriveApi.getFile(getGoogleApiClient(),
                DriveId.decodeFromString("0ByfSjdPVs9MZcEE3bzJCc3NsRkE"));
        file.getMetadata(getGoogleApiClient()).setResultCallback(metadataRetrievedCallback);

    }

    ResultCallback<MetadataResult> metadataRetrievedCallback = new
            ResultCallback<MetadataResult>() {
        @Override
        public void onResult(MetadataResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Problem while trying to fetch metadata");
                return;
            }
            Metadata metadata = result.getMetadata();
            showMessage("Metadata succesfully fetched. Title: " + metadata.getTitle());
        }
    }
}
  

如何获取资源ID?

仍在Android API for Drive上,DriveId类有一个方法getResourceId (),它返回资源ID。

  

如何获取设备ID?

我认为您无法使用Android Drive API来获取此功能。您似乎错误地认为这是您将Download Files使用的fileID。

在Google云端硬盘中手动找到fileID:

如果是spreadSheet文件

https://docs.google.com/spreadsheets/d/1pE9ejBTBH38oCoOHU2O42qU6vzxagAJ9J1237dYB1Eg/edit#gid=0

fileID -> 1pE9ejBTBH38oCoOHU2O42qU6vzxagAJ9J1237dYB1Eg

如果是doc文件:

   https://docs.google.com/document/d/1Fh6s7an-7I6VuDBxZKcxcaU3cG1XpSryHQXGnznWlns/edit

fileID -> 1Fh6s7an-7I6VuDBxZKcxcaU3cG1XpSryHQXGnznWlns

你得到了模式。它是URL中的一串字母数字字符。