我目前正在使用Google Games api实现Android游戏以支持排行榜。我还使用GameHelper
中的basegameutils
类。
这是我在MainActivity中的代码:
public class MainActivity extends AndroidApplication implements GameHelperListener {
private Game game;
private GameHelper mHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
mHelper.setConnectOnStart(true);
mHelper.setup(this);
// ...
}
@Override
public void onStart() {
super.onStart();
mHelper.onStart(this);
}
@Override
public void onStop() {
super.onStop();
mHelper.onStop();
}
@Override
public void onSignInSucceeded() {
showToast("sign in succeeded");
}
@Override
public void onSignInFailed() {
showToast("sign in failed");
}
}
当我启动该应用时,它会显示Google Play游戏登录叠加层。片刻后,这种情况消失了。问题是,我没有登录,客户端一直处于连接模式。只有当我关闭并重新打开应用程序时,我会看到弹出窗口,表示我已登录并且onSignInSucceeded()
被调用。
另一个问题是,如果我在关闭Wi-Fi的情况下打开应用程序(当我手动取消登录时相同),则不会调用onSignInFailed()
。同样,客户端也是连续的连接模式。
有人可以帮我解决问题吗? 提前谢谢。
答案 0 :(得分:1)
您需要实现onActivityResult
方法,以便帮助程序类知道登录活动返回的结果。
它应该看起来如下:
@Override
public void onActivityResult(int requestCode, int responseCode, Intent intent) {
super.onActivityResult( requestCode, responseCode, intent );
mHelper.onActivityResult( requestCode, responseCode, intent );
}