Google Play排行榜 - 无法提交分数

时间:2017-10-13 14:07:01

标签: android google-play-services

我最近在我的应用中实施了Google Play服务排行榜,但发现它没有提交分数。

我有一个来自MainActivity的GoogleApiClient实例,该实例被声明为静态以用于其他活动。访问排行榜的代码在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();

提交分数的代码位于从第二个活动的onActivityResult调用的方法内(并且在onCreate中进行一次测试)。因为它在onActivity结果中,googleApiClient没有立即连接,如果我直接更新会导致失败,所以我做了类似这样的事情:

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) {

            }
        });

但由于某种原因,它无法提交分数。排行榜加载,只显示没有得分。

奇怪的是,它在测试帐户上的模拟器上运行良好。

任何人都可以帮忙指出错误吗?

1 个答案:

答案 0 :(得分:0)

如果您还没有这样做,请检查并确保您已正确提供签名证书的SHA-1。请注意,发布证书指纹与调试证书指纹不同。

来自Authenticating Your Client

获取发布证书指纹:

keytool -exportcert -list -v \
-alias <your-key-name> -keystore <path-to-production-keystore>

获取调试证书指纹(适用于Windows):

keytool -exportcert -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

除此之外,我建议您考虑Quality Checklist for Google Play Games Services,特别是sign-inleaderboards