Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Google SignIn不支持游戏服务,但不支持_Java_Android_Google Play Services_Google Signin_Google Play Games - Fatal编程技术网

Java Google SignIn不支持游戏服务,但不支持

Java Google SignIn不支持游戏服务,但不支持,java,android,google-play-services,google-signin,google-play-games,Java,Android,Google Play Services,Google Signin,Google Play Games,首先,让我们看一看运行良好的代码。这是我们如何设置Google Api客户端的: GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken(AppActivity.this.getResources().getString(R.strin

首先,让我们看一看运行良好的代码。这是我们如何设置Google Api客户端的:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail() 
                .requestIdToken(AppActivity.this.getResources().getString(R.string.server_client_id))
                .build();

GoogleSignIn.googleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
然后,此选项用于连接:

// GPGS needs optional apparently, at least it crashes without. 
// Normal (non GPGS) SignIn works either way
googleApiClient.connect(SIGN_IN_MODE_OPTIONAL); 
然后我们调用login。覆盖显示,我选择我的电子邮件,登录运行,一切正常:

public static void loginGoogleSDK()
{
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
    GameApplication.getActivity().startActivityForResult(signInIntent, RC_SIGN_IN);
}
现在谷歌游戏服务登录非常类似,但总是返回一个用户取消的错误。GPGS覆盖显示,您可以选择一封电子邮件,然后它消失并返回错误:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
            .requestEmail()
            .requestIdToken(AppActivity.this.getResources().getString(R.string.server_client_id))
            .build();

GoogleSignIn.googleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Games.API)
            .addScope(Games.SCOPE_GAMES)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();
连接和登录是完全平等的

用户取消了结果代码,返回此处:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // cancelled = true when using GPGS 
    GameLog.i("On Activity Result called, cancelled? " + (resultCode == RESULT_CANCELED) );


    // [Other code for handling login....]


}

有人知道这是什么原因吗?我们如何让Google Player Games服务正常运行?我有一个类似的问题,但据我所知,你不能在Games.API中使用Auth.Google\u SIGN\u API

我的代码是100%正确的

我不得不将我的电子邮件添加到我的游戏下的Google Play开发者控制台的Testers下


这对于Google+SignIn来说不是必需的,但对于游戏来说是必需的。

在这里查看此指南,可能: