Wohin ist “createFromResourceId ()” gegangen?

Ich habe die neue Version von Google Play Services 4.2 (Bibliotheksversion 15) aktualisiert. Und plötzlich sind die Aufrufe von DriveId.createFromResourceId (“….”) ungetriggers.

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

Ich weiß, dass ich entweder DriveId oder encodeToString () / decodeFromString () verwenden kann, aber:

  1. ResourceId entspricht direkt einer http der Datei in Google Drive.
  2. Erscheint persistent, auch wenn die Datei manipuliert wird

Sowohl die Dokumentation als auch der Demo-Code verwenden die Methode ausführlich. Auch die Mirror-Methode getResourceId () existiert noch.
Mehr als eine Frage, es ist eine Bitte um Klärung von den Google Drive / Google Play Svcs Leuten.

   

Ich habe Burcus Antwort getestet, und leider hat es nicht funktioniert. Oder vielleicht habe ich die Frage falsch formuliert. Ich werde versuchen, es neu zu formulieren (und ich fand die richtige Antwort).

Es sind 2 verschiedene ID-Darstellungen für Zeichenfolgen für DriveId verfügbar (Datei und Ordner).

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

In 4.1 gab es 2 Methoden, die diese zur DriveId zurückführen würden

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

Beide funktionierten korrekt in Paaren und ich wählte die ResourceId-Variante, da diese kurze Zeichenfolge in http-Adresse in anderen Systemen (Apps Script …) verwendet wird. Zum Beispiel: https://docs.google.com/file/d/UW2aFJfdajB3M3JENy00Ums0B1mQ
Es scheint auch persistent zu sein, auch wenn die Datei in Google Drive manipuliert (gelöscht, wiederhergestellt, verschoben) wird.

Aber in 4.2 ist die createFromResourceId () verschwunden und kann NICHT durch “decodeFromString ()” ersetzt werden:

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

Stattdessen muss die DriveId von ResourceId auf diese Weise abgerufen werden:

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

(und ich verwende die “Warte” -Version zur Vereinfachung).

Die Schlussfolgerung lautet also: Die createFromResourceId () wurde durch ersetzt

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

mit dem Vorbehalt, dass das Konstrukt “wait ()” als Callback im normalen UI-Thread implementiert werden sollte.

UPDATE (2014-10-23)

Die obige Antwort ist ziemlich veraltet, bitte lesen Sie die Kommentare unten.

createFromResourceId wird in decodeFromString umbenannt.

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