无法在 Android Studio with Drive Api 中获取特定的云端硬盘文件缩略图链接

Unable to get specific Drive File thumbnailLink in Android Studio with Drive Api

我试图在 android 工作室中通过驱动器 Api 获取文件缩略图链接,但不断出现错误。授权和 Drive Service 工作正常,我能够获取文件名并创建文件。但是,当我尝试获取文件的缩略图 link 时,错误消息是

 I/error:: getting thumbnail:  println needs a message

这是我现在的代码,获取文件名的 Log 工作得很好

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 中的完全相同的文件中获取缩略图并且效果很好

有没有人知道如何解决它?谢谢!

所以,我刚刚找到了答案!显然驱动器中的每个缩略图都有一个永久性的 link,您只需要文件 ID

是:https://drive.google.com/thumbnail?authuser=0&sz=w320&id=[fileid]

编辑:

此外,我刚刚发现当你列出文件时,如果你输入 setFields thumbnailLink,你还可以得到一个临时的 thumbnailLink

这是一个示例代码:

 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()