我已成功使用以下代码从我的游戏中启动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服务版本假设咆哮错误的树。
其他人经历过这个?
答案 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();
这样做有一个缺点,即登录时会显示帐号选择器,这在我们的用例中也可以,也可能是你的。至少可以再次打开成就屏幕。