gpt4 book ai didi

android - "createFromResourceId()"到哪里去了?

转载 作者:太空狗 更新时间:2023-10-29 15:53:29 25 4
gpt4 key购买 nike

我已经更新到新版本的 Google Play Services 4.2(库版本 15)。突然,对 DriveId.createFromResourceId("...") 的调用无法解析。

DriveId sFolderId = DriveId.createFromResourceId("0B2EE......N3J6RU0"); 

我知道我可以使用 DriveIdencodeToString()/decodeFromString(),但是:

  1. ResourceId 直接对应于 Google 云端硬盘中文件的 http。
  2. 即使文件被操纵也似乎是持久的

documentationdemo code广泛使用该方法。此外,镜像方法 getResourceId() 仍然存在。
这不仅仅是一个问题,它是一个来自 Google Drive/ 的澄清请求Google Play Svcs 伙计们。

最佳答案

我测试了 Burcu 的答案,不幸的是它没有用。或者,也许我对问题的措辞不正确。我会尝试重新措辞(我找到了正确的答案)。

有 2 种不同的字符串类型 ID 表示形式可用于 DriveId(文件和文件夹)。

1/ DriveId.encodeToString(), resulting in something like:
"DriveId:CAESHDBCMW1RVVcyYUZKZmRhakIzMDBVbXMYjAUgssy8yYFRTTNKRU55"
2/ and DriveId.getResourceId(), resulting in shorter:
"UW2aFJfdajB3M3JENy00Ums0B1mQ"

在 4.1 中,有两种方法可以将这些返回到 DriveId

1/ DriveId.decodeFromString(DriveId.encodeToString());
2/ DriveId.createFromResourceId(DriveId.getResourceId());

它们都成对工作,我选择了 ResourceId 变体,因为这个短字符串出现在其他系统(Apps 脚本...)中使用的 http 地址中。例如: https://docs.google.com/file/d/UW2aFJfdajB3M3JENy00Ums0B1mQ
此外,即使文件在 Google Drive 中被操作(删除、恢复、移动),它似乎仍然存在。

但是在 4.2 中,createFromResourceId() 消失了并且不能被这样的“decodeFromString()”替换:

//INCORRECT    
DriveId.decodeFromString(DriveId.getResourceId());

相反,必须以这种方式从 ResourceId 中检索 DriveId:

DriveIdResult result = Drive.DriveApi.fetchDriveId(GAC, DriveId.getResourceId()).await();
DriveId drvID = result.getDriveId();

(为了简单起见,我使用“等待”版本)。

所以结论是:createFromResourceId() 被替换为

Drive.DriveApi.fetchDriveId(GAC, DriveId.getResourceId()).await().getDriveId()

需要注意的是,“await()”构造应在普通 UI 线程中作为回调实现。

更新 (2014-10-23)

上面的答案比较陈旧,请引用下面的评论。

关于android - "createFromResourceId()"到哪里去了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21800257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com