本指南将向您展示如何在 Android 应用程序中使用成就 API 来解锁并在游戏中显示成就。这些 API 位于 com.google.android.gms.games
和 com.google.android.gms.games.achievements
包中。
开始之前
如果您尚未这样做,您可能会发现查看 成就游戏概念 会很有帮助。
在开始使用成就 API 编写代码之前
按照 设置 Google Play 服务 SDK 指南中的说明,安装和设置您的应用以使用 Google Play 游戏服务。
通过遵循 Google Play Console 指南 中的说明,定义您希望游戏解锁或显示的成就。
下载并在 Android 示例页面 中查看成就代码示例。
熟悉 质量清单 中描述的建议。
获取成就客户端
要开始使用成就 API,您的游戏必须首先获取一个 AchievementsClient
对象。您可以通过调用 Games.getAchievementClient()
方法并将活动传递给它来实现。
解锁成就
要解锁成就,请调用 AchievementsClient.unlock()
方法并传入成就 ID。
以下代码片段显示了您的应用如何解锁成就
PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));
如果成就是增量类型(即解锁它需要几个步骤),请改为调用 AchievementsClient.increment()
。
以下代码片段显示了您的应用如何增加玩家的成就
PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);
您无需编写其他代码来解锁成就;Google Play 游戏服务会在成就达到其所需的步骤数后自动解锁它。
一个好的做法是在 strings.xml
文件中定义成就 ID,以便您的游戏可以通过资源 ID 来引用这些成就。在进行更新和加载成就的调用时,请确保也遵循这些 最佳实践 以避免超出您的 API 配额。
显示成就
要显示玩家的成就,请调用 AchievementsClient.getAchievementsIntent()
以获取一个 Intent
来创建默认成就用户界面。然后,您的游戏可以通过调用 startActivityForResult
来显示该 UI。
以下代码片段显示了您的应用如何显示默认成就用户界面。在片段中,RC_ACHIEVEMENT_UI
是游戏用作请求代码的任意整数。
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { PlayGames.getAchievementsClient(this) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
下面显示了默认成就 UI 的示例。