如何在 Gogle Play 保存的游戏中获取快照 ID(我使用的是适用于 Android 的 Google Play 服务库的最新版本 27)?
com.google.android.gms.games.snapshot.Snapshots
中有一个方法:
public abstract PendingResult<Snapshots.OpenSnapshotResult> resolveConflict (GoogleApiClient apiClient, String conflictId, String snapshotId, SnapshotMetadataChange metadataChange, SnapshotContents snapshotContents)
我在 Snapshot/SnapshotMetadata/OpenSnapshotResult
接口(interface)中找不到类似 getID()
或 getSnapshotID()
的方法。
文档: https://developers.google.com/android/reference/com/google/android/gms/games/snapshot/Snapshots
最佳答案
获取用于解决冲突的快照 ID 实际上非常简单。只需在您的快照上调用 snapshot.getMetadata().getSnapshotId()
即可。
您的解析代码可能如下所示:
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);
获取基础快照或冲突快照的 Id 并不重要。它们是相同的。
关于java - Google Play 保存的游戏中 resolveConflict 的 snapshotId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823470/