
如果我退出Google帐户,则对IGoogleapiclient.IsConnected()的调用将继续返回true(即使我已经明确注销).如果我然后尝试使用该API对象,我会得到以下异常:
java.lang.SecurityException: Not signed in when calling API
例如,如果在注销后执行,则以下代码会导致上述异常:
public voID StartNewmatch(){ if (!mGoogleapiclient.IsConnected) { return; } Intent intent = GamesClass.TurnBasedMultiplayer.GetSelectopponentsIntent(mGoogleapiclient,1,true); StartActivityForResult(intent,RC_SELECT_PLAYERS);} 我正在Google Play游戏收件箱(匹配选择器)中退出;如下图所示.
有没有人遇到过这个?我错过了什么吗?有任何解决方法吗?
注意:只有通过Google的用户界面退出时才会出现这种情况.如果我用mGoogleapiclient.disconnect()之类的方式手动签出用户,则不会出现问题; mGoogleapiclient.IsConnected()现在返回false(按预期方式).
解决方法 为了保持登录状态同步,你必须正确实现onActivityResult.这应该看起来如下:
注意:这是java代码,我不确定这将如何使用Xamarin,但希望你应该能够弄明白:)
@OverrIDeprotected voID onActivityResult(int requestCode,int responseCode,Intent data) { // check for "inconsistent state" if ( responseCode == GamesActivityResultCodes.RESulT_RECONNECT_required && requestCode == <your_request_code_here> ) { // force a disconnect to sync up state,ensuring that mClIEnt reports "not connected" mGoogleapiclient.disconnect(); }} 注意:只需确保在代码中替换您使用的请求代码.您可能还需要检查多个请求代码.
总结以上是内存溢出为你收集整理的注销后,Android API IsConnected返回TRUE全部内容,希望文章能够帮你解决注销后,Android API IsConnected返回TRUE所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)