2014-04-03 44 views
1

新的Google Drive Android API有兩種可用的字符串ID,'資源'ID和'編碼'ID。如何識別驅動器ID?

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

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

在這個過程中我最終可以使用能夠包含它們中的任何一個(一些定時問題結果)的字符串。我的問題是:

如果我需要'解析'字符串以識別類型,是否有我可以依賴的特性?例如:

  • '編碼' ID始終以 '驅動器Id:' 子
  • '資源' 身份證將有一定長度的限制
  • 我可以濫用從「decodeFromString錯誤返回( )「?
  • 或者我應該用自己的標籤形成(預先)字符串容器?什麼可能是最小的「安全」標籤(即,這些標識的開頭永遠不會出現什麼)?

請指點我正確的方向,因此我不必在下一個版本中重新執行此操作。

我已經遇到另一個應該在這裏提到的問題,所以別人不會浪費時間落入同一個坑。 'resourceID'可以被移植,並且對於它標識的對象將保持唯一,其中'encodedID'僅具有'設備'範圍。意味着您不能將'encodedID'傳輸到其他設備(使用相同的帳戶)並嘗試使用它檢索文件/文件夾。所以我認爲它對於Google Play服務實例是唯一的。

回答

2

請不要依賴任何一種ID類型的格式。如有更改,恕不另行通知。

如果您需要同時使用它們並跟蹤它們之間的差異,則應該在您的應用程序中使用自己的方法。

真的,你應該總是隻存儲編碼的ID,因爲這個總是保證呈現,如果它包含resourceId,它很容易退出。

+0

謝謝,這就是我的想法。我很樂意使用encodedIDs,但不幸的是,我的處理從RESTful API的'resourceIDs'開始(需要從舊版本獲取縮略圖,描述...),並將其異步地轉換爲'encodedIds'。這就是我暫時結束混音的地方(你知道多線程設計的喜悅:-)。無論如何,所有的功能都將立即消失,對吧? – seanpj