将应用从REST API移植到GDAA时,我遇到了以下问题。
该应用程序需要根据用户选择下载一些(数千)JPEG图像。在应用程序中解决这个问题的方法是首先使用REST API的这个结构下载缩略图版本:
private static InputStream getCont(String rsid, boolean bBig){
InputStream is = null;
if (rsid != null) try {
File gFl = bBig ?
mGOOSvc.files().get(rsid).setFields("downloadUrl" ).execute():
mGOOSvc.files().get(rsid).setFields("thumbnailLink").execute();
if (gFl != null){
GenericUrl url = new GenericUrl(bBig ? gFl.getDownloadUrl() : gFl.getThumbnailLink());
is = mGOOSvc.getRequestFactory().buildGetRequest(url).execute().getContent();
}
} catch (UserRecoverableAuthIOException uraEx) {
authorize(uraEx.getIntent());
} catch (GoogleAuthIOException gauEx) {}
catch (Exception e) { }
return is;
}
它允许获得缩略图'或者'成熟的'基于 bBig 标志的图像版本。用户可以从列表中选择一个缩略图,然后进行完整的图像下载(当然,这一切都受到基于磁盘的LRU缓存的支持)。 问题是,GDAA没有选择减小尺寸/缩略图版本的对象(AFAIK)的选项,所以我不得不求助于两个API,这使代码更复杂{ {3}}。针上说明了资源ID' REST所需的可能无法立即获得 所以,问题是:有没有办法向GDAA询问缩略图'文件的版本?
答案 0 :(得分:0)
更新:我在讨论请求字段时遇到错误。
正如Ofir所说,你无法通过Drive Android API获取缩略图,并且可以获取Drive Java Client Library的缩略图。这个页面是一个非常好的入门入门:
https://developers.google.com/drive/v3/web/quickstart/android
奇怪的是,我无法让请求的字段部分在快速启动时工作。正如我所经历的那样,你必须以不同的方式要求这些领域。
由于您正在执行自定义字段请求,因此您必须确保添加所需的其他字段。以下是我如何使用它:
Drive.Files.List request = mService.files()
.list()
.setFields("files/thumbnailLink, files/name, files/mimeType, files/id")
.setQ("Your file param and/or mime query");
FileList files = request.execute();
files.getFiles(); //Each File in the collection will have a valid thumbnailLink
示例查询可能是:
"mimeType = 'image/jpeg' or mimeType = 'video/mp4'"
希望这有帮助!