Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Este guia mostra como usar as APIs de placares em um app Android
para criar placares visuais, registrar a pontuação de um jogador e comparar a pontuação
com a de sessões anteriores do jogo. As APIs podem ser encontradas
nos pacotes com.google.android.gms.games
e com.google.android.gms.games.leaderboards.
Antes de começar a programar usando as APIs de placares:
Siga as instruções do guia
Configurar o SDK do Google Play Services para instalar e configurar seu app para usar os
serviços relacionados a jogos do Google Play.
Defina os placares que você quer que o jogo mostre ou atualize
seguindo as instruções no
guia do Google Play Console.
Faça o download e confira os exemplos de código dos placares na
página de exemplos do Android (link em inglês) no GitHub.
Quando a pontuação do jogador muda (por exemplo, quando ele termina uma partida), o
jogo pode atualizar o placar chamando
LeaderboardsClient.submitScore()
e transmitindo o ID do placar e o valor bruto da pontuação.
O snippet de código abaixo mostra como o app pode atualizar a pontuação do jogador:
É recomendado definir o ID do placar no arquivo strings.xml para que
o jogo possa referenciar os placares pelos IDs de recurso. Ao fazer chamadas para
atualizar e carregar pontuações de jogadores, siga as
práticas recomendadas para evitar exceder sua cota de APIs.
O snippet de código abaixo mostra como o app pode atualizar a pontuação do jogador. No
snippet de código, RC_LEADERBOARD_UI é um número inteiro arbitrário para o código da solicitação.
Mesmo que nenhum resultado seja retornado, você precisa usar
startActivityForResult
para que a API possa receber a identidade do pacote de chamada. Confira abaixo um exemplo da
interface padrão da tabela de classificação.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-26 UTC."],[],[],null,["# Leaderboards in Android games\n\n| **Note:** This guide is for the Play Games Services v2 SDK. For information on the previous version of this SDK, see the [Play Games Services v1\n| documentation](/games/pgs/v1/android/leaderboards).\n\nThis guide shows you how to use leaderboards APIs in an Android app\nto create visual leaderboards, record a player's score, and compare the score\nagainst the player's score from previous game sessions. The APIs can be found\nin the [`com.google.android.gms.games`](https://developers.google.com/android/reference/com/google/android/gms/games/package-summary)\nand [`com.google.android.gms.games.leaderboards`](https://developers.google.com/android/reference/com/google/android/gms/games/leaderboard/package-summary) packages.\n\nBefore you begin\n----------------\n\nIf you haven't already done so, you might find it helpful to review the\n[leaderboards game concepts](/games/pgs/leaderboards).\n\nBefore you start to code using the leaderboards APIs:\n\n- Follow the instructions for installing and setting up your app to use\n Google Play Games Services in the\n [Set Up Google Play Services SDK](https://developers.google.com/android/guides/setup) guide.\n\n- Define the leaderboards that you want your game to display or update, by\n following the instructions in the\n [Google Play Console guide](/games/pgs/leaderboards#creating_a_leaderboard).\n\n- Download and review the leaderboards code samples in the\n [Android samples page](https://github.com/playgameservices/android-basic-samples) on GiHub.\n\n- Familiarize yourself with the recommendations described in\n [Quality Checklist](/games/pgs/quality).\n\nGet the leaderboards client\n---------------------------\n\nTo start using the leaderboards API, your game must first obtain a\n[`LeaderboardsClient`](https://developers.google.com/android/reference/com/google/android/gms/games/LeaderboardsClient) object.\nYou can do this by calling the [`PlayGames.getLeadeboardsClient()`](https://developers.google.com/android/reference/com/google/android/gms/games/PlayGames#public-static-leaderboardsclient-getleaderboardsclient-activity-activity)\nmethod and passing in the activity.\n| **Note:** The [`LeaderboardsClient`](https://developers.google.com/android/reference/com/google/android/gms/games/LeaderboardsClient) class makes use of the Google Play services Task class to return results asynchronously. To learn more about using tasks to manage threaded work, see the [Tasks API developer guide](https://developers.google.com/android/guides/tasks).\n\nUpdate the player's score\n-------------------------\n\nWhen the player's score changes (for example, when the player finishes the game), your\ngame can update their score on the leaderboard by calling\n[`LeaderboardsClient.submitScore()`](https://developers.google.com/android/reference/com/google/android/gms/games/LeaderboardsClient#submitScore),\nand passing in the leaderboard ID and the raw score value.\n\nThe following code snippet shows how your app can update the player's score: \n\n```scdoc\nPlayGames.getLeaderboardsClient(this)\n .submitScore(getString(R.string.leaderboard_id), 1337);\n```\n\nA good practice is to define the leaderboard ID in your `strings.xml` file, so\nyour game can reference the leaderboards by resource ID. When making calls to\nupdate and load player scores, make sure to also follow these\n[best practices](/games/pgs/quality) to avoid exceeding your API quota.\n\nDisplay a leaderboard\n---------------------\n\nTo display leaderboard, call\n[`LeaderboardsClient.getLeaderboardIntent()`](https://developers.google.com/android/reference/com/google/android/gms/games/LeaderboardsClient#getLeaderboardIntent(java.lang.String)) to get an\n[`Intent`](/reference/android/content/Intent) to\ncreate the default leaderboard user interface. Your game can then bring up the\nUI by calling\n[`startActivityForResult`](/reference/android/app/Activity#startActivityForResult).\n\nThe following code snippet shows how your app can update the player's score. In the\ncode snippet, `RC_LEADERBOARD_UI` is an arbitrary integer for the request code. \n\n```transact-sql\nprivate static final int RC_LEADERBOARD_UI = 9004;\n\nprivate void showLeaderboard() {\n PlayGames.getLeaderboardsClient(this)\n .getLeaderboardIntent(getString(R.string.leaderboard_id))\n .addOnSuccessListener(new OnSuccessListener\u003cIntent\u003e() {\n @Override\n public void onSuccess(Intent intent) {\n startActivityForResult(intent, RC_LEADERBOARD_UI);\n }\n });\n}\n```\n\nEven though no result is returned, you have to use\n[`startActivityForResult`](/reference/android/app/Activity#startActivityForResult)\nso that the API can obtain the identity of the calling package. An example of\nthe default leaderboard UI is shown below."]]