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?
question from:
https://stackoverflow.com/questions/66058113/google-play-game-services-with-room-database 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…