Android GoogleApiClient:无法连接

Android GoogleApiClient: Can't connect

我正在尝试将新的 GoogleApiClient 实施到我的 android 应用程序中,但是 GoogleApiClient 无法连接。我使用 connect() 方法,但是 isConnecting() 方法 returns 始终为真而 isConnected() 永远不会为真。

我的代码

初始化

mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Games.API).addScope(Games.SCOPE_GAMES)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();

连接

@Override
protected void onStart() {
    super.onStart();
    if( mGoogleApiClient != NULL )
        mGoogleApiClient.connect()
}

打开排行榜

private void openAchievements() {
  if( !mGoogleApiClient.isConnected() ) // always false
      return;

  startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient), REQUEST_ACHIEVEMENTS);
}

实施:

@Override
public void onConnected(Bundle bundle) {
    Log.e("DEBUG", "Connected!");
}

@Override
public void onConnectionSuspended(int i) {
    Log.e("DEBUG", "connection suspended");
}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
    Log.e("DEBUG", "connection failed");
}

权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

元数据:

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />

有人能帮忙吗?

当您构建 Api 客户端时,您正在添加连接回调,在您的情况下是 Activity 本身实现这些回调。

您的 activity 应该实施的方法之一是 onConnected(),它会在连接成功建立时调用。所以你需要从这个方法调用 openAchievements() 。然后你可以删除不必要的检查 !mGoogleApiClient.isConnected()

Google 'Play Games' 应用程序和服务在上次更新后无法使用。所以我必须等待测试我的应用程序。

谢谢!