【发布时间】:2017-10-13 14:07:01
【问题描述】:
我最近在我的应用中实现了一个 google play services 排行榜,但发现它没有提交分数。
我有一个来自 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) {
}
});
但由于某种原因未能提交分数。排行榜加载,只显示不得分。
奇怪的是,它在测试帐户的模拟器上运行良好。
谁能帮忙指出错误?
【问题讨论】:
-
你有没有试过检查Result,看看有没有线索?
-
它确实在模拟器上工作,我确实检查了 Log 和 toasts,它符合预期。只是由于某种原因无法在真实设备上运行
标签: android google-play-services