获取对快照的引用。 Google Play 游戏服务已保存的游戏

2023-12-15

       private PendingResult<Snapshots.CommitSnapshotResult> 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();

            // Commit the operation
            return Games.Snapshots.commitAndClose(mGoogleApiClient, snapshot, metadataChange);
        }

https://developers.google.com/games/services/android/savedgames

文档说在调用 writeSnaphot 之前必须获取对快照的引用。由于快照是一个接口,因此无法使用 new 创建。

如何获取对快照的引用?

谢谢你!

附:我发现有一种方法可以通过按名称打开现有的已保存游戏来获取引用,但是我想获取的引用是针对新快照的,目前没有现有快照,因此使用加载函数可能无法成功编写新快照。


您可以使用不存在的文件名调用 open 来创建新快照。此代码片段对 open 的结果使用 .await(),因此您需要从 AsyncTask 或其他一些非 UI 线程调用它。 (看https://developers.google.com/games/services/android/savedgames更多细节):

private PendingResult<Snapshots.CommitSnapshotResult> writeSnapshot(String newSnapshotFilename,
       byte[] data, Bitmap coverImage, String desc) {

Snapshots.OpenSnapshotResult result =
   Games.Snapshots.open(mGoogleApiClient, newSnapshotFilename, true).await();
// Check the result of the open operation
  if (result.getStatus().isSuccess()) {
    Snapshot snapshot = result.getSnapshot();
    snapshot.getSnapshotContents().writeBytes(data);

    // Create the change operation
    SnapshotMetadataChange metadataChange = new
           SnapshotMetadataChange.Builder()
                .setCoverImage(coverImage)
                .setDescription(desc)
                .build();

    // Commit the operation
   return Games.Snapshots.commitAndClose(mGoogleApiClient, snapshot, metadataChange);
   }
   return null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取对快照的引用。 Google Play 游戏服务已保存的游戏 的相关文章

  • 适用于多个设备的 WiFi Direct

    我正在尝试根据中给出的教程通过 Wifi Direct 建立文件传输 在 3 个设备之间 http developer android com training connect devices wireless wifi direct ht

随机推荐