玩游戏服务和LibGDX:如何正确登录?

Play Games Services and LibGDX: How to sign-in correctly?

根据 Google Play 游戏服务 的质量核对表游戏在第一次启动时应显示登录对话框,但当对话框被取消时,登录对话框不应弹出起来了。 我试图在 LibGDX 中使用 BaseGameUtils 实现这一点。

到目前为止,我得到了 Android class,其中初始化了 GameHelper。然后我调用 gameHelper.setConnectOnStart(false) 因为我想从我的游戏代码开始签名过程。为此,我得到了一个接口。

为了解决我的问题,我考虑在我的 mainGame 中使用一个布尔值,它指示之前是否显示过登录对话框。当游戏开始时,我会查看我的 sharedPreferences,如果有一个条目表明对话框之前显示过,那么布尔值将为真。当游戏关闭时,布尔值将保存到 sharedPreferences。

我如何知道何时将 mainGame 中的布尔值设置为 true,以便下次启动游戏时不显示对话框?

我记不太清楚了,因为已经很久了,但是你可以在AndroidLauncher的onActivityResult()中设置一个监听器。类似于:

if(requestCode == GameHelper.RC_RESOLVE && resultCode == Activity.RESULT_CANCELED)
{
    //user cancelled sign in process
}

我通过将 gameHelper.setMaxAutoSignInAttempts 设置为 1 来做到这一点。

 gameHelper.setConnectOnStart(false);
 gameHelper.setMaxAutoSignInAttempts(1);    

如果取消登录对话框,它将不再显示。