本指南介绍如何在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()
方法并传入活动来实现。
解锁成就
要解锁成就,请调用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的示例。