Friday 5 March 2021

Google play game services with Room database

We have a simple trivia game which is currently using Room database to store all the data including users progress. We now want to integrate Google play game services to store the progress on cloud so user can have their progress when the device is changed or game is reinstalled.

Currently we have game categories and level details in xml file which is then parsed and data are stored in Room database on first run of app.

We have checked the documents of game services and we are aware that there is this method to save the game.

private Task<SnapshotMetadata> writeSnapshot(Snapshot snapshot,
                                         byte[] data, Bitmap coverImage, String desc) {

  // Set the data payload for the snapshot
  snapshot.getSnapshotContents().writeBytes(data);

  // Create the change operation
  SnapshotMetadataChange metadataChange = new SnapshotMetadataChange.Builder()
      .setCoverImage(coverImage)
      .setDescription(desc)
      .build();

  SnapshotsClient snapshotsClient =
      Games.getSnapshotsClient(this, GoogleSignIn.getLastSignedInAccount(this));

  // Commit the operation
  return snapshotsClient.commitAndClose(snapshot, metadataChange);
}

But the issue is, this method takes bytes to write the snapshot and we have data in Room database, can we pass the data from Room db or we have to change the local database?



from Google play game services with Room database

No comments:

Post a Comment