java - Google Play 保存的游戏中 resolveConflict 的 snapshotId

标签 java android google-play-services

如何在 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/

相关文章:

android - 如何实现多个Android版本使用不同的库?

android - “Conversion to Dalvik format failed”错误不会消失

android - 无法启动进程 'command '/Applications/Android Studio.app/.../bin/java''

android - Google Play 服务中 UserRecoverableAuthException.getIntent() 中的 NullPointerException

android - 无法使用 eclipse 导入 google_play_services

java - 不支持 Hive 方法

java - Android studio重构为androidx后没有重构.java和.xml文件中的支持类

java - 未找到类 "android.view.menu"

java - 即使应用程序已从最近的应用程序中清除或在 Red MI 设备上关闭,仍可继续服务

android - 在 Android Studio 中始终显示错误已拾取 _JAVA_OPTION -Xmx512M