本指南向您展示如何在 Android 应用中使用成就 API 来解锁和显示游戏中的成就。这些 API 位于 com.google.android.gms.games
和 com.google.android.gms.games.achievements
软件包中。
准备工作
如果您尚未完成,可以阅读成就游戏概念,这可能会有所帮助。
开始使用成就 API 编写代码之前
请按照设置 Google Play 服务 SDK 指南中的说明安装和设置您的应用,以使用 Google Play 游戏服务。
遵循Google Play 管理中心指南中的说明,定义您希望游戏解锁或显示的成就。
在Android 示例页面中下载并查看成就代码示例。
熟悉质量核对清单中描述的建议。
获取成就客户端
要开始使用成就 API,您的游戏必须首先获取一个 AchievementsClient
对象。您可以通过调用 Games.getAchievementClient()
方法并传入 activity 来完成此操作。
解锁成就
要解锁成就,请调用 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
来显示此界面。
以下代码片段展示了您的应用如何显示默认的成就用户界面。在此片段中,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); } }); }
默认成就界面的示例如下所示。
