Android API中的Auth.GOOGLE\u SIGN\u不能与Games.API一起使用

Android API中的Auth.GOOGLE\u SIGN\u不能与Games.API一起使用,android,google-play-games,google-api-client,google-signin,Android,Google Play Games,Google Api Client,Google Signin,我正在尝试将GoogleAppClient与Games.API和Auth.GOOGLE\u SIGN\u IN\u API(用于获取用户配置文件信息)连接起来。 获取此错误: java.lang.IllegalStateException: Auth.GOOGLE_SIGN_IN_API cannot be used with Games.API 代码: 为什么我不能将Games.API与Auth.GOOGLE\u SIGN\u-IN\u-API一起使用? 我必须连接Games.API并获

我正在尝试将
GoogleAppClient
Games.API
Auth.GOOGLE\u SIGN\u IN\u API
(用于获取用户配置文件信息)连接起来。
获取此错误:

java.lang.IllegalStateException: Auth.GOOGLE_SIGN_IN_API cannot be used with Games.API

代码:


为什么我不能将
Games.API
Auth.GOOGLE\u SIGN\u-IN\u-API
一起使用?
我必须连接
Games.API
并获取用户配置文件信息,还有什么选择?

由我自己解决。
如果您已经连接了
Games.API
,则无需在API中添加
Auth.GOOGLE\u SIGN\u来获取用户配置文件信息


连接:

googleApiClient = new GoogleApiClient.Builder(activity)
                .addConnectionCallbacks(connectionCallbacks)
                .addOnConnectionFailedListener(onConnectionFailedListener)
                .addApi(Games.API).addScope(Games.SCOPE_GAMES)
                .build();

如果失败:

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
    if (connectionResult.hasResolution()) {
        try {
            connectionResult.startResolutionForResult(this, REQUEST_RESOLVE_ERR);
        } catch (IntentSender.SendIntentException e) {
            googleApiClient.connect();
            e.printStackTrace();
        }
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case REQUEST_RESOLVE_ERR:
            if (resultCode == RESULT_OK) {
                if (!googleApiClient.isConnecting()
                            && !googleApiClient.isConnected())
                    googleApiClient.connect();
            }
            break;
    }
}

如果已连接:
获取用户配置文件信息:

String name = Games.Players.getCurrentPlayer(googleApiClient).getDisplayName();
Uri photo = Games.Players.getCurrentPlayer(googleApiClient).getIconImageUri();
//and more...
由我自己决定。
如果您已经连接了
Games.API
,则无需在API中添加
Auth.GOOGLE\u SIGN\u来获取用户配置文件信息


连接:

googleApiClient = new GoogleApiClient.Builder(activity)
                .addConnectionCallbacks(connectionCallbacks)
                .addOnConnectionFailedListener(onConnectionFailedListener)
                .addApi(Games.API).addScope(Games.SCOPE_GAMES)
                .build();

如果失败:

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
    if (connectionResult.hasResolution()) {
        try {
            connectionResult.startResolutionForResult(this, REQUEST_RESOLVE_ERR);
        } catch (IntentSender.SendIntentException e) {
            googleApiClient.connect();
            e.printStackTrace();
        }
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case REQUEST_RESOLVE_ERR:
            if (resultCode == RESULT_OK) {
                if (!googleApiClient.isConnecting()
                            && !googleApiClient.isConnected())
                    googleApiClient.connect();
            }
            break;
    }
}

如果已连接:
获取用户配置文件信息:

String name = Games.Players.getCurrentPlayer(googleApiClient).getDisplayName();
Uri photo = Games.Players.getCurrentPlayer(googleApiClient).getIconImageUri();
//and more...

您是否引用过。@ShreeKrishna这是同一个问题,但我没有找到正确的答案……我在android问题跟踪器上创建了一个问题,建议将新的Google登录流与游戏API集成:如果您认为这是个好主意,请给它一颗星星;)您是否引用过。@ShreeKrishna这是同一个问题,但我没有找到正确的答案……我在android问题跟踪器上创建了一个问题,建议将新的Google登录流与游戏API集成:如果您认为这是个好主意,请给它一颗星星;)但是如果没有
Auth.GOOGLE\u-SIGN\u-IN\u-API
我就无法获得Auth令牌。有可能吗?@Alexmelyon我想没有。这个例子只是为了获取谷歌游戏(不是谷歌+)上的用户数据。但是如果没有
Auth。在API中使用谷歌签名,我就无法获取Auth令牌。有可能吗?@Alexmelyon我想没有。这个例子只是为了获取谷歌游戏(不是谷歌+)的用户数据。