- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经更新到新版本的 Google Play Services 4.2(库版本 15)。突然,对 DriveId.createFromResourceId("...") 的调用无法解析。
DriveId sFolderId = DriveId.createFromResourceId("0B2EE......N3J6RU0");
我知道我可以使用 DriveId 或 encodeToString()/decodeFromString(),但是:
documentation和 demo 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/
我已经更新到新版本的 Google Play Services 4.2(库版本 15)。突然,对 DriveId.createFromResourceId("...") 的调用无法解析。 DriveI
我是一名优秀的程序员,十分优秀!