如何在Gogle Play保存的游戏中获取快照ID(我使用的是适用于Android的Google Play Services Library的最新版本27)?
com.google.android.gms.games.snapshot.Snapshots
中有一种方法:
public abstract PendingResult<Snapshots.OpenSnapshotResult> resolveConflict (GoogleApiClient apiClient, String conflictId, String snapshotId, SnapshotMetadataChange metadataChange, SnapshotContents snapshotContents)
我在getID()
接口中找不到getSnapshotID()
或Snapshot/SnapshotMetadata/OpenSnapshotResult
等方法。
文档: https://developers.google.com/android/reference/com/google/android/gms/games/snapshot/Snapshots
答案 0 :(得分:2)
获取冲突解决的快照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或冲突的快照,这无所谓。他们是一样的。
答案 1 :(得分:-1)
没有直接的方法可以找到快照的 snapshot_id ,但您可以这样做:
确定Player_id(如果当前经过身份验证的用户,则设置为 me )并发出GET请求,以检索应用程序为与玩家ID对应的播放器创建的快照列表。
GET https://www.googleapis.com/games/v1/players/playerId/snapshots
这将返回items数组中的 快照资源 。
items数组将包含以下JSON数据:
{ “善意”:“游戏#swapshot”, “id”:字符串, “driveId”:string, “uniqueName”:字符串, “type”:字符串, “title”:字符串, “description”:字符串, “封面图片”: { “善意”:“游戏#snapshotImage”, “width”:整数, “height”:整数, “mime_type”:字符串, “url”:字符串 }, “lastModifiedMillis”:很久了, “durationMillis”:很长 }
与此密钥相关联的“id”值将是您要查找的 snapshot_id 。