如何识别驱动器ID?

时间:2014-04-03 14:49:10

标签: google-drive-android-api

新版Google云端硬盘Android API提供两种类型的字符串ID,即资源' ID和'编码' ID。

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

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

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

如果我需要解析'字符串为了识别类型,我可以依赖的特征是什么?例如:

  • '的编码' ID始终以' DriveId开头:'子
  • '的资源' id会有一些长度限制
  • 我可以滥用' decodeFromString()&#39 ;?中的错误返回
  • 或者我应该用自己的标签形成(预先挂起)字符串容器?什么可能是最小的安全'标签(即永远不会出现在这些ID的开头)?

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

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

1 个答案:

答案 0 :(得分:2)

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

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

实际上,你应该总是只存储编码的ID,因为它总是保证存在,如果它包含一个resourceId,它很容易退出。