Google Play游戏:加载的快照始终为空

时间:2017-05-18 18:12:21

标签: java android google-play-services google-play-games

我尝试使用Play游戏库保存和加载快照但是我被卡住了:我发送了我的字节数组,我想,它是正确保存在云中的,因为如果我启动了由

Games.Snapshots.getSelectSnapshotIntent(...)

我可以看到保存的快照。

在游戏重启时,我想在后台加载快照。这里出现问题:返回的字节数组总是为空,当我尝试加载时,保存的快照将从云中删除。

如何以正确的方式保存/加载快照?

保存背景方法的片段:

Snapshots.OpenSnapshotResult result =
    Games.Snapshots.open(gameHelper.getApiClient(), "test_filename", true).await();

switch (result.getStatus().getStatusCode()) {
    case GamesStatusCodes.STATUS_OK:
    case GamesStatusCodes.STATUS_SNAPSHOT_CONFLICT:
        Snapshot snapshot = result.getSnapshot();
        snapshot.getSnapshotContents().writeBytes(data);
        SnapshotMetadataChange metadataChange = new SnapshotMetadataChange.Builder()
            .setDescription("Modified data at: " + Calendar.getInstance().getTime())
            .build();
        Games.Snapshots
            .commitAndClose(gameHelper.getApiClient(), snapshot, metadataChange)
            .await();
        return;
    default:
        throw new Exception();
}

加载背景方法的片段:

Snapshots.OpenSnapshotResult result =
    Games.Snapshots.open(gameHelper.getApiClient(), "test_filename", true).await();

switch (result.getStatus().getStatusCode()) {
    case GamesStatusCodes.STATUS_OK:
    case GamesStatusCodes.STATUS_SNAPSHOT_CONFLICT:
        Snapshot snapshot = result.getSnapshot();
        byte[] data = snapshot.getSnapshotContents().readFully();
        Games.Snapshots.discardAndClose(gameHelper.getApiClient(), snapshot);
        return data;
    default:
        throw new Exception();
}

请注意,我没有任何冲突或异常,即使使用SnapshotsCoordinator帮助程序,我也无法使用它。

播放服务版本:10.2.1

0 个答案:

没有答案