В новом Android API Google Диска доступны 2 типа строковых идентификаторов: идентификатор «ресурса» и «закодированный» идентификатор.
'encoded' id from DriveId.encodeToString()
"DriveId:CAESHDBCMW1RVVcyYUZKZmRhakIzMDBVbXMYjAUgssy8yYFRTTNKRU55"
'resource' id from DriveId.getResourceId()
"UW2aFJfdajB3M3JENy00Ums0B1mQ"
В процессе я получаю строку, которая может содержать любой из них (результат некоторых проблем со временем). Мой вопрос:
Если мне нужно «разобрать» строку, чтобы определить тип, есть ли характеристика, на которую я могу положиться? Например:
- Идентификатор 'encoded' всегда будет начинаться с подстроки 'DriveId:'
- Идентификатор 'resource' будет иметь ограничение по длине
- могу ли я злоупотреблять возвратом ошибки из 'decodeFromString()'?
- или я должен сформировать (предварить) строковый контейнер с моим собственным тегом? Каким может быть минимальный «безопасный» тег (то есть то, что никогда не появится в начале этих идентификаторов)?
Пожалуйста, укажите мне правильное направление, чтобы мне не пришлось переделывать это со следующим выпуском.
Я столкнулся с еще одной проблемой, которую следует упомянуть здесь, чтобы другие не тратили время впустую, попадая в ту же яму. «resourceID» может быть перенесен и останется уникальным для объекта, который он идентифицирует, где «encodedID» имеет только область действия «устройство». Означает, что вы НЕ МОЖЕТЕ перенести 'encodedID' на другое устройство (с той же учетной записью) и попытаться получить файл/папку с его помощью. Поэтому я предполагаю, что это уникально для экземпляра Google Play Services.