1

新的 Google Drive Android API 有两种可用的字符串 ID,“资源”ID 和“编码”ID。

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

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

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

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

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

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

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

4

1 回答 1

2

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

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

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

于 2014-04-03T15:14:32.443 回答