J'ai récemment mis en place un classement google play services dans mon application, mais j'ai découvert qu'il ne soumettait pas de scores.Google play leaderboard - impossible de soumettre des scores
J'ai une instance de GoogleApiClient de MainActivity qui est déclarée statique à utiliser dans d'autres activités. Le code pour visiter le leaderboard est dans MainActivity.
public static GoogleApiClient apiClient = apiClient = new GoogleApiClient.Builder(this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Toast.makeText(MainActivity.this, "Failed to connect to google play", Toast.LENGTH_LONG).show();
}
})
.build();
Le code de soumettre le score est dans une méthode qui est appelée à partir onActivityResult d'une deuxième activité (et une fois dans onCreate pour les tests). Parce qu'il est dans le résultat onActivity, le GoogleApiClient est pas instantanément connecté et les résultats en échec si je mets à jour directement, donc je l'ai fait quelque chose comme ceci:
MainActivity.apiClient.registerConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(@Nullable Bundle bundle) {
PendingResult r = Games.Leaderboards.submitScoreImmediate(MainActivity.apiClient,
getString(R.string.leaderboard_most_stars),
totalStars);
ResultCallback callback = new ResultCallback()
{
@Override
public void onResult(@NonNull Result result) {}
};
r.setResultCallback(callback);
}
@Override
public void onConnectionSuspended(int i) {
}
});
Mais il ne présente note pour une raison quelconque. Charges de classement, ne montre aucun score.
Et chose étrange, cela fonctionne très bien sur un émulateur sur un compte de test.
Quelqu'un peut-il aider à signaler l'erreur?
Avez-vous essayé de vérifier le résultat et de voir s'il y avait la moindre idée? – Cata
Cela fonctionne sur l'émulateur, j'ai vérifié avec Log et toasts, et c'est comme prévu. Juste ne fonctionne pas sur de vrais appareils pour une raison quelconque – Abhijeet