¿A dónde se fue el “createFromResourceId ()”?

He actualizado a la nueva versión de Google Play Services 4.2 (biblioteca versión 15). Y de repente, las llamadas a DriveId.createFromResourceId (“….”) no se han resuelto.

DriveId sFolderId = DriveId.createFromResourceId("0B2EE......N3J6RU0"); 

Sé que puedo usar DriveId o encodeToString () / decodeFromString () en su lugar, pero:

  1. ResourceId se corresponde directamente con un http del archivo en Google Drive.
  2. Parece ser persistente incluso si el archivo está manipulado

Tanto la documentación como el código de demostración usan el método ampliamente. Además, el método espejo getResourceId () todavía existe.
Más que una pregunta, es una solicitud de aclaración por parte de la gente de Google Drive / Google Play Svcs .

Probé la respuesta de Burcu, y desafortunadamente no funcionó. O tal vez formulé la pregunta incorrectamente. Trataré de volver a formularlo (y encontré la respuesta correcta).

Hay 2 representaciones de ID de tipo de cadena diferentes disponibles para DriveId (tanto archivo como carpeta).

 1/ DriveId.encodeToString(), resulting in something like: "DriveId:CAESHDBCMW1RVVcyYUZKZmRhakIzMDBVbXMYjAUgssy8yYFRTTNKRU55" 2/ and DriveId.getResourceId(), resulting in shorter: "UW2aFJfdajB3M3JENy00Ums0B1mQ" 

En 4.1, había 2 métodos que los devolverían a DriveId

 1/ DriveId.decodeFromString(DriveId.encodeToString()); 2/ DriveId.createFromResourceId(DriveId.getResourceId()); 

Ambos funcionaron correctamente en pares y elegí la variedad ResourceId, ya que esta cadena corta aparece en la dirección http utilizada en otros sistemas (Apps Script …). Por ejemplo: https://docs.google.com/file/d/UW2aFJfdajB3M3JENy00Ums0B1mQ
Además, parece ser persistente incluso si el archivo se manipula en Google Drive (en la papelera, restaurado, movido).

Pero en 4.2, el createFromResourceId () desapareció y NO PUEDE ser reemplazado por “decodeFromString ()” como este:

 //INCORRECT DriveId.decodeFromString(DriveId.getResourceId()); 

En cambio, DriveId de ResourceId debe recuperarse de esta manera:

 DriveIdResult result = Drive.DriveApi.fetchDriveId(GAC, DriveId.getResourceId()).await(); DriveId drvID = result.getDriveId(); 

(y utilizo la versión “esperar” por simplicidad).

Entonces la conclusión es: el createFromResourceId () fue reemplazado por

 Drive.DriveApi.fetchDriveId(GAC, DriveId.getResourceId()).await().getDriveId() 

con la advertencia de que el constructo “await ()” debe implementarse como una callback en el hilo de UI normal.

ACTUALIZACIÓN (2014-10-23)

La respuesta anterior es bastante obsoleta, consulte los comentarios a continuación.

createFromResourceId se renombra a decodeFromString .

 DriveId sFolderId = DriveId.decodeFromString("0B2EE......N3J6RU0");