谷歌排行榜在最新版本中显示? (Google Play Services 7.5.71)

时间:2015-06-01 22:23:33

标签: android google-play-services google-play-games leaderboard

我已成功使用以下代码从我的游戏中启动Google排行榜显示:

startActivityForResult(Games.Leaderboards.getLeaderboardIntent(googleApiClient,getString(R.string.leaderboard)),LEADERBOARD_REQUEST_CODE);

但是,最近在更新了包括Google Play服务(以及可能还有其他Google图书馆)之后,排行榜显示不再启动,而是在GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED()中获取返回码onActivityResult,并且logcat我看到了:

E/ClientUiFragAct(26401): Not signed in. To launch Client UI activities, you must be connected to the games service AND signed in.

即使我尝试启动GUI时,也会通过执行返回true的googleAPIClient.isConnected()来检查我是否已登录。

所以,在2个独立的设备上,当我能想到的唯一相关变化是Google图书馆的更新(Google Play Services 7.5.71 1955121-036)时,此功能已停止在我的相同版本的应用上运行。 我还有第三台可以使用的设备,旧版Google Play服务6.7.76(1745988-034)。 我使用API​​级别22构建。

奇怪的是,其他几款游戏(不是我的游戏)仍然安装了谷歌排行榜,并安装了7.5.71版本。

我可能会使用Google Play服务版本假设咆哮错误的树。

其他人经历过这个?

1 个答案:

答案 0 :(得分:1)

我们通过删除" setAccountName"解决了这个问题。调用GoogleApiClient.Builder的配置。
旧代码:

GoogleApiClient.Builder builder = new GoogleApiClient.Builder( this );  
builder.addApi( Games.API );  
builder.addScope( Games.SCOPE_GAMES );  
builder.addConnectionCallbacks( this );  
builder.addOnConnectionFailedListener( this );  
builder.setAccountName( "some.account@gmail.com" );  
builder.build();  

新代码:

GoogleApiClient.Builder builder = new GoogleApiClient.Builder( this );  
builder.addApi( Games.API );  
builder.addScope( Games.SCOPE_GAMES );  
builder.addConnectionCallbacks( this );  
builder.addOnConnectionFailedListener( this );  
builder.build();  

这样做有一个缺点,即登录时会显示帐号选择器,这在我们的用例中也可以,也可能是你的。至少可以再次打开成就屏幕。