我想从Android设备上的Google云端硬盘中的文件或文件夹中检索元数据,以获取deviceID或resourceID,然后我可以将文件下载到设备的本地存储中。我的应用程序的问题是,应用程序不需要用户交互。这意味着,只需告诉应用程序名称,然后应用程序将尝试在每个目录中查找文件并下载它。 我尝试使用query (link)按照快速入门教程,但它只返回现有文件的名称。
再次注意:用户不需要选择文件或文件夹,只需告诉文件名即可。文件或文件夹也是由应用程序创建的。
答案 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中的一串字母数字字符。