我是第一次尝试实施Google Play服务排行榜但有一些问题。
我在主要活动中有show showboard按钮,因此我在MainActivity中初始化了一个GoogleApiClient,到目前为止一切都很好 - 谷歌连接和一个空白的排行榜。
实际填充排行榜的分数来自第二项活动GameActivity。 我创建了另一个GoogleApiClient实例并尝试连接它。 但是......即使在调用apiClient.connect()
之后总是会失败我做错了吗?整个计划只允许一个客户?
我在这两个活动中使用此代码进行初始化:
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(LevelSelector.this, "Failed to connect to google play", Toast.LENGTH_LONG).show();
}
})
.build();
我从主要活动中呼叫排行榜
leaderboardTextView = (TextView) findViewById(R.id.leaderboard_button);
leaderboardTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivityForResult(
Games.Leaderboards.getLeaderboardIntent(apiClient,
getString(R.string.leaderboard_most_stars)), 0);
}
});
分数从不同的活动提交给排行榜
private void updateScore(){
if(!apiClient.isConnected()){
apiClient.connect();
}
//Always returns false.
if(apiClient.isConnected()) {
Games.Leaderboards.submitScore(apiClient,
getString(R.string.leaderboard_most_stars),
totalStars);
}
}
答案 0 :(得分:1)
应用中只允许一个API客户端。让您的apiClient
公开静态并使用MainActivity.apiClient