【发布时间】:2019-03-08 16:38:53
【问题描述】:
我正在尝试在我的 Android 应用中将 Google 的游戏存档功能与 Google Play 游戏服务一起使用。谷歌提供sample code how to do so:
private static final int RC_SAVED_GAMES = 9009;
private String mCurrentSaveName = "snapshotTemp";
private void showSavedGamesUI() {
SnapshotsClient snapshotsClient =
Games.getSnapshotsClient(this, GoogleSignIn.getLastSignedInAccount(this));
int maxNumberOfSavedGamesToShow = 5;
Task<Intent> intentTask = snapshotsClient.getSelectSnapshotIntent(
"See My Saves", true, true, maxNumberOfSavedGamesToShow);
intentTask.addOnSuccessListener(new OnSuccessListener<Intent>() {
@Override
public void onSuccess(Intent intent) {
startActivityForResult(intent, RC_SAVED_GAMES);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if (intent != null) {
if (intent.hasExtra(SnapshotsClient.EXTRA_SNAPSHOT_METADATA)) {
// Load a snapshot.
SnapshotMetadata snapshotMetadata =
intent.getParcelableExtra(SnapshotsClient.EXTRA_SNAPSHOT_METADATA);
mCurrentSaveName = snapshotMetadata.getUniqueName();
// Load the game data from the Snapshot
// ...
} else if (intent.hasExtra(SnapshotsClient.EXTRA_SNAPSHOT_NEW)) {
// Create a new snapshot named with a unique string
String unique = new BigInteger(281, new Random()).toString(13);
mCurrentSaveName = "snapshotTemp-" + unique;
// Create the new snapshot
// ...
}
}
}
显然,Google 希望您使用他们提供的意图让用户决定要加载哪个已保存的游戏或是否应创建新的保存游戏。
另一方面,我想为用户做这个决定。但是,我无法找到返回快照列表和加载快照数据的方法。
由于我的游戏不需要为每位用户维护多个已保存的游戏,因此我对获取无意图的快照列表不太感兴趣(不过,这将是一个有趣的解决方案),而更喜欢加载基于快照的在保存的游戏名称上,默默地。
如何在不显示意图的情况下加载快照?
【问题讨论】:
-
你检查过这个 SO 相关的post 吗?那里有一个示例代码。
-
@jess 谢谢。该答案使用了一个已弃用的解决方案,但它最终帮助我找到了正确的解决方案。请检查我的答案。
-
酷!很高兴它可以帮助您找到更好的解决方案:)
标签: java android google-signin google-play-games snapshot