如何在游戏服务上显示欢迎弹出窗口?

时间:2017-11-21 19:07:31

标签: android google-play-services google-play-games

我在游戏中实现了Google Play游戏服务。我可以连接它,但当我回到我的游戏时,我无法显示欢迎POPUP ...我怎么能显示它?

我尝试了setViewForPopups和setGravityForPopups,就像他们在文档中所说的那样......

private void startSignInIntent() {
 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
            .requestEmail()
            .build();
GoogleSignInClient signInClient = GoogleSignIn.getClient(getActivity(),
            gso);
    Intent intent = signInClient.getSignInIntent();
    startActivityForResult(intent, RC_SIGN_IN);
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {
            // The signed in account is stored in the result.
            GoogleSignInAccount signedInAccount = result.getSignInAccount();
            Games.getGamesClient(getContext(), signedInAccount).setViewForPopups(getView());
        } else {
            String message = result.getStatus().getStatusMessage();
            if (message == null || message.isEmpty()) {
                message = getString(R.string.signin_other_error);
            }
            new AlertDialog.Builder(getActivity()).setMessage(message)
                    .setNeutralButton(android.R.string.ok, null).show();
        }
    }
}

3 个答案:

答案 0 :(得分:2)

为了显示“欢迎回来”弹出窗口,请在登录成功后调用此方法。

ViewGroup vgContent = activity.findViewById(R.id.content);

GamesClient client = Games.getGamesClient(mContext, signedInAccount);
client.setViewForPopups(vgContent);
client.setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL);

欢迎回来对话框将出现在屏幕顶部。 您可以提供上下文或活动。

您需要提供一个视图,以显示弹出窗口。在这里,我将提供活动的内容视图,该视图始终存在。

答案 1 :(得分:1)

欢迎回来:

Games.getGamesClient(this,googleSignInAccount).setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL);

答案 2 :(得分:0)

我实现了静默登录,在decorView上使用了setViewForPopups,欢迎回来只显示应用程序关闭了很长时间(约10小时工作,不确定更少)。弹出窗口每次显示互动登录。