在所有应用程序启动时显示 Google Play 游戏欢迎对话框

Show Google Play Games Welcome Dialog on all app launches

模拟城市应用程序的行为可以描述我尝试尝试的最佳示例(而且我敢肯定还有很多我可能不知道的其他人也在使用 google 登录Google 玩游戏)。一旦您登录 google 在 simcity 上玩游戏,从那时起每次您启动该应用程序时,都会显示一个从屏幕顶部滑动的弹出窗口,上面写着 "Welcome **user*"。现在在我的应用程序中,我已经遵循了 google 的所有文档 (https://developers.google.com/games/services/android/init) 和各种其他来源,并且我唯一一次看到 "welcome" 弹出窗口是在用户登录之后第一次。我在 onResumeonStart 中唯一的代码是 mGoogleApi.connect(),这与我第一次单击登录按钮并显示欢迎对话框时的代码完全相同。

我的问题是:关于如何显示此对话框,我是不是遗漏了什么,或者每次我关闭应用程序时,simcity 之类的应用程序是否以某种方式让我退出,然后在我再次打开它时重新登录? (对我来说这似乎没有意义,但这是目前我能想到的唯一合乎逻辑的解释。)

为了 100% 准确,下图正是我要找的。

您可能想尝试使用 PreferenceScreen,它表示顶级 Preference,它是首选项层次结构的根。 PreferenceActivity 指向此 class 的实例以显示首选项。

这是 XML 布局的示例 PreferenceScreen:

<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:key="first_preferencescreen">
    <CheckBoxPreference
            android:key="wifi enabled"
            android:title="WiFi" />
    <PreferenceScreen
            android:key="second_preferencescreen"
            android:title="WiFi settings">
        <CheckBoxPreference
                android:key="prefer wifi"
                android:title="Prefer WiFi" />
        ... other preferences here ...
    </PreferenceScreen>
</PreferenceScreen> 

如需更详细的信息,您可以查看完整的documentation. Additionally, solution given in this SO post也可能有帮助。

欢迎消息不会在每次调用登录或身份验证时显示。如果用户已 "recently" 登录应用程序,则不会显示该消息。这有点令人困惑,因为连接是静默发生的。您可以通过在代码中调用 mGoogleAPI.isConnected() 来确认您已连接。

我引用了 "recently" 因为它实际上是由 Play 游戏服务决定的。它旨在减少对用户的干扰,让他们专注于实际游戏而不是他们已登录的指示。