wie, um eine Verbindung zum google-play-Dienst, und laden Rangliste

Möchte ich eine Verbindung zu meinem Spiel mit google play service. ich habe gelesen, Dokumentation auf der android-developer und versuchen Sie, folgende Typ-a-number sample-und kann immer noch nicht laden Rangliste.

habe ich importieren baseGameUtils, aber ich benutze andengine, damit ich Sie nicht verwenden, reicht BaseGameActivity von google.

was habe ich bis jetzt:

- GooglePlayServicesUtil.isGooglePlayServicesAvailable () return Erfolg

- startActivityForResult(pickAccountIntent, REQUEST_CODE_PICK_ACCOUNT); funktioniert gut und ich habe meinen account-Namen von onActivityResult(..);

- ich bereits auf meinem manifest.

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

meine Fragen sind

1. kann ich google play service erstreckt sich ohne BaseGameActivity?

2. wenn ich gameHelper.beginUserInitiatedSignIn(); nachdem ich meinen account Namen, ich habe diese auf Protokoll-cat. (was dieser verbunden meine? weil ich immer noch Fehler auf nächste Frage)

08-25 00:09:01.890: D/BaseGameActivity(11222): isGooglePlayServicesAvailable returned 0  
08-25 00:09:01.890: D/BaseGameActivity(11222): beginUserInitiatedSignIn: starting new sign-in flow.  
08-25 00:09:01.890: D/BaseGameActivity(11222): All clients now connected. Sign-in successful.  
08-25 00:09:01.890: D/BaseGameActivity(11222): All requested clients connected. Sign-in succeeded!  

3 . wie kann ich mit connect()? ich habe gelesen und versucht über den gameClient und GameClientBuilder aber ich habe keine Ahnung wie man das nutzen. wenn ich habe versucht, diesen code auszuführen.

startActivityForResult(gameHelper.getGamesClient().getAllLeaderboardsIntent(), RC_UNUSED);  

bekam ich das Protokoll.

08-25 00:09:05.660: E/AndroidRuntime(11222): java.lang.IllegalStateException: Not connected. Call connect() and wait for onConnected() to be called.

4 . verwenden leaderboard-ich weiß, ich muss verwenden Sie code aus dem google play store wie CgkIx****AIQAA. aber ich habe nicht gefunden, wo muss ich diesen code zum laden Rangliste.

sorry für die lange Frage, aber ich denke, wenn es ist ein Beispiel, das nur für die Verbindung, und entweder auf Leistung oder leaderboard wird alle beantworten meine Frage. bitte erzählen Sie mir nicht, um zu sehen, Typ-a-number sample, ich habe das und brauche ich ein anderes Beispiel-code.

update, meine geschnippelt code

public class MainMenu extends Activity 
implements OnClickListener, GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener, GameHelperListener{

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main_menu);
  gameHelper = new GameHelper(this);
}

@Override
public void onClick(View v) {
  if(v.equals(loadData)) {
    if(gameHelper.isSignedIn()) {
      gameHelper.setup(this, GameHelper.CLIENT_GAMES, Scopes.GAMES);
      startActivityForResult(gameHelper.getGamesClient().getAllLeaderboardsIntent(), RC_UNUSED);
    }
  }
  else if(v.equals(loginButton)) {
    Intent googlePicker = AccountPicker.newChooseAccountIntent(null,null,new String[]{GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE},true,null,null,null,null) ;
    startActivityForResult(googlePicker, REQUEST_CODE_PICK_ACCOUNT);
  }
}

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
  if(requestCode==REQUEST_CODE_RECOVER_PLAY_SERVICES) {
    if (resultCode == RESULT_CANCELED) {
      Toast.makeText(this, "Google Play Services must be installed.", Toast.LENGTH_SHORT).show();
      finish();
    }
    return;
  }
  else if(requestCode==REQUEST_CODE_PICK_ACCOUNT) {
    if (resultCode == RESULT_OK) {
      String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
      gameHelper.beginUserInitiatedSignIn();
    }
    else if (resultCode == RESULT_CANCELED) {
      Toast.makeText(this, "This application requires a Google account.", Toast.LENGTH_SHORT).show();
      finish();
    }
    return;
  }
  super.onActivityResult(requestCode, resultCode, data);
}

//this 2 methods not called, is this also because my code is wrong?
@Override
public void onSignInFailed() {
  Log.d("rush", "on sign in failed");
}

@Override
public void onSignInSucceeded() {
  Log.d("rush", "on sign in succeed");
}

}

InformationsquelleAutor gondai yosuke | 2013-08-24

Schreibe einen Kommentar