无法使用 Drive Api 在 Android Studio 中获取特定的 Drive File 缩略图链接

问题描述

我正在尝试通过 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()