从您自己的 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/