本指南介绍了如何在 Android 应用中使用成就 API 以在游戏中解锁和显示成就。这些 API 可在 com.google.android.gms.games
和 com.google.android.gms.games.achievements
软件包中找到。
准备工作
请阅读成就游戏概念(如果您尚未阅读)。
开始使用成就 API 进行编码之前,请执行以下操作:
- 按照说明安装和设置要使用的应用 Google Play 游戏服务 设置 Google Play 服务 SDK 指南。
- 按照 Google Play 管理中心指南中的说明,定义您希望在游戏中解锁或显示的成就。
- 在 Android 示例页面中下载并查看成就代码示例。
- 熟悉质量核对清单中所述的建议。
获取成就客户端
若要开始使用成就 API,您的游戏必须先获取
AchievementsClient
对象。为此,您可以调用
Games.getAchievementClient()
方法并传入 activity 和
GoogleSignInAccount
,代表当前玩家。要了解如何检索
玩家账号信息,请参阅在 Android 游戏中登录。
解锁成就
如需解锁成就,请调用 AchievementsClient.unlock()
方法并
传入成就 ID。
以下代码段展示了应用如何解锁成就:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .unlock(getString(R.string.my_achievement_id));
如果成就属于增量类型(也就是说,需要执行几个步骤才能达成)
解锁),请改为调用 AchievementsClient.increment()
。
以下代码段展示了应用如何增加玩家的成就:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(getString(R.string.my_achievement_id), 1);
您无需额外编写代码即可解锁成就;Google Play 游戏服务 成就达到其要求的步骤后会自动解锁。
最好在 strings.xml
文件中定义成就 ID,以便游戏按资源 ID 引用成就。调用 update 和 load 时
也请务必遵循这些最佳实践
避免超出您的 API 配额
显示成就
如需显示玩家的成就,请调用 AchievementsClient.getAchievementsIntent()
以获取 Intent
以创建
默认成就界面然后,您的游戏可以通过调用 startActivityForResult
启动界面。
以下代码段展示了应用如何显示默认成就界面。
在该代码段中,RC_ACHIEVEMENT_UI
是游戏用作请求代码的任意整数。
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
默认成就界面的示例如下所示。