gpt4 book ai didi

android - 如何处理与 Google 游戏服务的断开连接?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:57 25 4
gpt4 key购买 nike

我将 Google 游戏服务用于排行榜。显示如下:

static public void showLeaderboard(String lid)
{
if (isLogined() == 1)
{
Log.i(TAG, "Showing leaderboard...");
Intent intent = Games.Leaderboards.getLeaderboardIntent(mClient, lid);
mApp.startActivityForResult(intent, 1);
}
}

static public int isLogined()
{
if (mClient != null && mClient.isConnected())
return 1;
return 0;
}

但是当我打开排行榜并使用 Google UI 从 Google Game Services 注销时(Action Overflow 菜单图标 -> Settings -> Sign out),我的 isLogined() == 1 一直存在。因此,当我第二次调用 showLeaderboard() 时时间 - 游戏异常失败:

java.lang.SecurityException: Not signed in when calling API

GoogleApiClient 有连接回调,但没有断开回调。我如何使用 Google UI 处理从 GGS 发出的声音?

最佳答案

为了保持一切同步,你必须实现onActivityResult

这应该如下所示:

@Override
protected void onActivityResult(int request, int response, Intent data) {

// check for "inconsistent state"
if ( responseCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED && requestCode == <your_request_code_here> ) {
// force a disconnect to sync up state, ensuring that mClient reports "not connected"
mClient.disconnect();
}
}

注意:只需确保替换 <your_request_code_here>在带有您使用的请求代码的代码中(在您的示例中为 1)。如果您也使用成就,则可能需要检查多个请求代码。

关于android - 如何处理与 Google 游戏服务的断开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26162684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com