简体   繁体   中英

snapshotId for resolveConflict in Google Play Saved Games

How to get snapshot ID in Gogle Play Saved Games (I'm using the latest revision 27 of Google Play Services Library for Android)?

There is a method in com.google.android.gms.games.snapshot.Snapshots :

public abstract PendingResult<Snapshots.OpenSnapshotResult> resolveConflict (GoogleApiClient apiClient, String conflictId, String snapshotId, SnapshotMetadataChange metadataChange, SnapshotContents snapshotContents)

I can't find methods like getID() or getSnapshotID() in Snapshot/SnapshotMetadata/OpenSnapshotResult interfaces.

Documentation: https://developers.google.com/android/reference/com/google/android/gms/games/snapshot/Snapshots

Getting snapshot ID for conflict resolution is actually pretty easy. Just call snapshot.getMetadata().getSnapshotId() on your snapshot and thats it.

Your resolution code may then look like this:

Snapshots.OpenSnapshotResult openSnapshotResult; //Conflicting open result

final SnapshotContents resContent = openSnapshotResult.getResolutionSnapshotContents();
//Make resolution of conflicting snapshot contents
resContent.writeBytes(...);

final Snapshot snapshot = openSnapshotResult.getSnapshot();
final String snapshotID = snapshot.getMetadata().getSnapshotId(); //Here comes your snapshot ID
Games.Snapshots.resolveConflict(PlayClient, openSnapshotResult.getConflictId(), snapshotID, SnapshotMetadataChange.EMPTY_CHANGE, resContent);

It doen't matter if you take Id of base snapshot or conflicting snapshot. They are the same.

There is no direct way to find the snapshot_id of a snapshot but you can get it like this:

  • Determine the Player_id (set to me if its current authenticated user) and make a GET request to retrieve a list of snapshots created by your application for the player corresponding to the player ID.

     GET https://www.googleapis.com/games/v1/players/playerId/snapshots 
  • This will return the snapshot Resources in the items array.

  • The items array will contain the following JSON data:

    { "kind": "games#snapshot", "id": string, "driveId": string, "uniqueName": string, "type": string, "title": string, "description": string, "coverImage": { "kind": "games#snapshotImage", "width": integer, "height": integer, "mime_type": string, "url": string }, "lastModifiedMillis": long, "durationMillis": long }

  • The "id" value associated with this key will be the snapshot_id you are looking for.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM