【问题标题】:How to identify Drive ID?如何识别驱动器 ID?
【发布时间】:2014-04-03 14:49:09
【问题描述】:

新的 Google Drive Android API 有 2 种类型的字符串 ID,“资源”ID 和“编码”ID。

'encoded' id from DriveId.encodeToString()
"DriveId:CAESHDBCMW1RVVcyYUZKZmRhakIzMDBVbXMYjAUgssy8yYFRTTNKRU55"

'resource' id from DriveId.getResourceId()
"UW2aFJfdajB3M3JENy00Ums0B1mQ"

在这个过程中,我最终得到了一个可以包含其中任何一个的字符串(一些时间问题的结果)。我的问题是:

如果我需要“解析”字符串以识别类型,是否有可以依赖的特征?例如:

  • 'encoded' id 将始终以 'DriveId:' 子字符串开头
  • 'resource' id 会有一些长度限制
  • 我可以滥用'decodeFromString()' 的错误返回吗?
  • 或者我应该用我自己的标签形成(预先挂起)字符串容器吗?什么是最小的“安全”标签(即这些 id 的开头永远不会出现什么)?

请指点我正确的方向,这样我就不必在下一个版本中重新做。

我遇到了另一个应该在这里提到的问题,这样其他人就不会浪费时间陷入同一个坑。 'resourceID' 可以被移植,并且对于它所识别的对象将保持唯一,其中 'encodedID' 仅具有 'device' 范围。意味着您不能将“encodedID”传输到另一台设备(使用相同的帐户)并尝试使用它检索文件/文件夹。所以我认为它是 Google Play 服务实例所独有的。

【问题讨论】:

    标签: google-drive-android-api


    【解决方案1】:

    请不要依赖任何一种 ID 类型的任何格式。如有更改,恕不另行通知。

    如果您需要同时使用这两种方法,并跟踪它们之间的差异,您应该在您的应用程序中使用自己的方法。

    确实,您可能应该始终只存储已编码的 ID,因为始终保证会显示此 ID,并且如果它包含 resourceId,则很容易取出。

    【讨论】:

    • 谢谢,我就是这么想的。我很想使用encodedIDs,但不幸的是,我的处理从RESTful API 中的“resourceIDs”开始(需要从旧版本中获取缩略图、描述……),然后我将其异步转换为“encodedIds”。这就是我暂时结束混合的地方(你知道多线程设计的乐趣:-)。无论如何,一旦所有功能到位,所有这些都会消失,对吧?
    猜你喜欢
    • 2015-04-27
    • 2021-01-04
    • 1970-01-01
    • 2019-11-25
    • 2016-01-02
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多