我在我的游戏中集成了谷歌游戏服务,包括排行榜和成就。如果用户打开排行榜或成就活动,他可以从右上角的设置中退出。
如何检查用户是否真正登录?尽管用户从 google 视图中注销, getGamesClient.isConnected() 仍然为 true。
如果我单击注销按钮(该按钮仍然存在,因为 gamesClient 仍处于连接状态),我会收到 SecurityException:
08-16 11:01:21.262 14288-14288/? E/AndroidRuntime:致命异常:main
java.lang.SecurityException
在 android.os.Parcel.readException(Parcel.java:1425)
在 android.os.Parcel.readException(Parcel.java:1379)
在 com.google.android.gms.internal.bm$a$a.a(来源未知)
在 com.google.android.gms.internal.bj.signOut(来源未知)
在 com.google.android.gms.games.GamesClient.signOut(来源未知)
目前,我正在检查活动结果响应代码并断开游戏客户端(如果它处于不一致的状态),但我不喜欢这种方法。
尝试处理 onActivityResult:
public boolean onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == RC_YOUR_UNIQUE_ID
&& resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
mHelper.disconnect();
// update your logic here (show login btn, hide logout btn).
} else {
mHelper.onActivityResult(requestCode, resultCode, data);
}
return false;
}
RC_YOUR_UNIQUE_ID 是您用于显示排行榜或成就活动的 ID。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)