Android GoogleApiClient:无法连接

时间:2015-05-31 11:36:26

标签: android api connection client

我尝试将新GoogleApiClient实施到我的Android应用程序中,但GoogleApiClient无法连接。我使用connect()方法,但isConnecting()方法返回true,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" />

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

当您构建Api客户端时,您需要添加连接回调,在您的情况下,活动本身会实施这些回调。

您的活动应该实现的方法之一是onConnected(),在成功建立连接时调用该方法。所以你需要从这个方法中调用openAchievements()。然后,您可以删除不必要的支票!mGoogleApiClient.isConnected()

答案 1 :(得分:0)

Google“Play游戏”的应用和服务在上次更新时无效。所以我必须等待测试我的应用程序。

谢谢!