我们有一个简单的问答游戏,目前使用Room数据库来存储包括用户进度在内的所有数据。现在我们想要集成Google Play游戏服务,将进度存储在云端,这样用户可以在更改设备或重新安装游戏时恢复他们的进度。
目前,我们有游戏类别和级别详细信息在xml文件中,然后在应用程序第一次运行时解析并将数据存储在Room数据库中。
我们已经查看了游戏服务的文档,我们知道有这种方法可以保存游戏进度。
目前,我们有游戏类别和级别详细信息在xml文件中,然后在应用程序第一次运行时解析并将数据存储在Room数据库中。
我们已经查看了游戏服务的文档,我们知道有这种方法可以保存游戏进度。
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);
}
但问题是,这种方法需要使用字节来写入快照,而我们的数据存储在Room数据库中,我们能否从Room数据库传递数据,还是必须更改本地数据库?