android - 如何通过 Google Play 排行榜 UI 检测注销?

标签 android google-play-games

从您自己的 UI(例如主菜单上的按钮)注销或断开 GamesClient 很简单。

但是,用户也可以在 getAllLeaderboardsIntent() 等 Intent 显示的成就和排行榜 View 中从 Google Play 用户界面退出游戏。 (它有点隐藏,但如果你点击右上角的菜单,它会让你注销。)

有一些有前途的监听器接口(interface),例如 OnSignOutCompleteListener,但它们似乎无法通过 Google UI 进行注销,只能从您自己的 UI 调用 GamesClient.signOut()。

如何检测用户是否已退出排行榜或成就 Intent ?是否可以对此进行回调?

我希望能够更新我的游戏内 UI 以反射(reflect)登录状态。

最佳答案

遗憾的是,GameHelper 无法检测您何时从 Google Play 游戏注销。

您需要做的是将其放入 Activity 的 onActivityResult() 方法中。

我在 res == RESULT_RECONNECT_REQUIRED 为真时尝试使用 aHelper.signOut() 时遇到崩溃错误。

相反,我创建了一个 resetAllValues() 方法,它在 GameHelper 中将所有值重置为默认值。

在我的 MainActivity.java 中

protected void onActivityResult(int req, int res, Intent data) {
    super.onActivityResult(req, res, data);

    if (res == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
        aHelper.resetAllValues();
    } else {
        aHelper.onActivityResult(req, res, data);
    }
}

我在 GameHelper.java 中的方法

public void resetAllValues()
{
    mProgressDialog = null;
    mAutoSignIn = true;
    mUserInitiatedSignIn = false;
    mConnectionResult = null;
    mSignInError = false;
    mExpectingActivityResult = false;
    mSignedIn = false;
    mDebugLog = false;
}

关于android - 如何通过 Google Play 排行榜 UI 检测注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20297893/

相关文章:

android - 在 Google Play 中显示 Google 游戏服务支持

在空指针异常的情况下,Java 与 Objective C

java - EditText 值与 ListView 中第一行的值相同

java - 创建房间时 CONNECTION_FAILED Google Play 服务

c++ - 如何在已经使用适用于 C++ 的 Google Play 游戏服务 SDK 实现排行榜的情况下创建 Google+ Plus One 按钮?

android - Google Play 游戏服务 - 无法登录 Game Center

c# - java.lang.IllegalArgumentException : Upsert affected multiple rows 异常

android - 提高 Android TessBaseAPI (Tesseract) OCR 的准确性

android - Howler JS 2.0-Cordova,Android,设备上未播放声音

Java android Java.io.FileNotFoundException : No content provider:/storage/emulated/0/Android/data