问题描述
我正在尝试通过 Drive Api 在 android studio 中获取文件缩略图链接,但一直出现错误。授权和驱动器服务工作正常,我能够获取文件名并创建文件。但是,当我尝试获取文件的缩略图链接时,错误消息是
I/error:: getting thumbnail: println needs a message
public Task<File> getThumbnail(String fileId) {
return Tasks.call(mExecutor,() -> {
Log.i("chegou","thumbnailLink");
final File file = mDriveService.files().get(fileId).execute();
Log.i("file name",file.getName());
Log.i("file thumbnail",file.getThumbnailLink());
return null;
});
}
此外,我尝试从 google playground 中完全相同的文件中获取缩略图,并且效果很好
有没有人知道如何解决它?谢谢!
解决方法
所以,我刚刚发现了答案!显然,驱动器中的每个缩略图都有一个永久链接,您只需要文件 ID
它是:https://drive.google.com/thumbnail?authuser=0&sz=w320&id=[fileid]
编辑:
另外,我刚刚发现,当你列出文件时,如果你放入 setFields 缩略图链接,你也可以获得临时缩略图链接
这是一个示例代码:
FileList searchList = mDriveService.files().list()
.setQ("name = '" + fileName + "'")
.setSpaces("drive")
.setFields("files(id,name,size,createdTime,modifiedTime,starred,thumbnailLink,mimeType)")
.execute();
然后您只需要从列表中获取文件即可获得缩略图链接
searchList.getFiles().get(0).getThumbnailLink()