このガイドでは、実績 API を Android アプリで使用し、ゲームの実績のロックを解除して表示する方法について説明します。API は
com.google.android.gms.gamesとcom.google.android.gms.games.achievements
パッケージに含まれています。
始める前に
ゲームの実績に関するコンセプトをまだ確認されていない場合は、確認することをおすすめします。
実績 API を使用してコーディングを開始する前に:
Google Play 開発者サービス SDK の設定ガイドに記載されている手順に沿って、アプリをインストールして Google Play Games サービスを使用できるように設定します。
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 Games サービスでは、必要なステップ数に達すると、実績が自動的にロック解除されます。
実績 ID を strings.xml ファイルで定義して、リソース ID で実績を参照できるようにすることをおすすめします。呼び出しを行い実績を更新して読み込む場合は、API の割り当てを超えないように、こちらのベスト プラクティスにも従ってください。
実績を表示する
プレーヤーの実績を表示するには、
AchievementsClient.getAchievementsIntent()
を呼び出して
Intent
を取得し、デフォルトの実績ユーザー インターフェースを作成します。その後、ゲームで
UI を
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); } }); }
次の図は、デフォルトの実績 UI の例を示しています。
[おすすめ] 行には、最も一般的な周知の実績が表示されます。これは、プレーヤーがまだロック解除していない実績で、他のプレーヤーのほとんどがロック解除している実績です。