2014-02-15 4 views
1

Я только что добавил в свою игру таблицу лидеров игровых сервисов Google, но есть некоторые проблемы. Я не могу начать работу с лидерами. Вот мой кодНет getApiClient() в сервисах игровой игры Google BaseGameUtils

startActivityForResult(Games.Leaderboards.getLeaderboardIntent(getApiClient(), "leaderboard_id"), 5000); 

Проблема в том, что метода getApiClient() нет. Есть идеи?

ответ

3

Вам необходимо использовать объект типа GoogleApiClient. Ваш код должен быть такой:

public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, 
GoogleApiClient.OnConnectionFailedListener{ 
     GoogleApiClient mGoogleClient; 
     ... 

     @Override 
     protected void onCreate(final Bundle savedInstanceState) { 
      ... 
      //Google Game 
      mGoogleClient = new GoogleApiClient.Builder(this, this, this) 
      .addApi(Games.API) 
      .addScope(Games.SCOPE_GAMES) 
      .setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL) 
      .build(); 

     } 

     @Override 
     public void onStart(){ 
      super.onStart(); 
      //Here is a good place to connect with Google Api 
      mGoogleClient.connect(); 
     } 

     @Override 
     public void onConnected(Bundle connectionHint) {} 

     @Override 
     public void onConnectionSuspended(int cause) {} 

     @Override 
     public void onConnectionFailed(ConnectionResult connectionResult) {} 

} 
+0

Как это помогает? – Andrew

1

The Games APIs doc указует на этот метод в библиотеке BaseGameUtils в проекте Android Samples, а также аналогичные методы, такие как getApiClientBuilder():

«Если ваша игра хочет добавьте дополнительные API или области обслуживания Google Play для GoogleApiClient, которыми управляет BaseGameActivity, он может сделать это, вызвав getApiClientBuilder() в объекте GameHelper "в BaseGameUtils.

Я еще не вижу эти методы в BaseGameUtils on github, и я предполагаю, что они будут обновлены в какой-то момент.

ОБНОВЛЕНИЕ: Похоже, обновление GameHelper в BaseGameUtils составляет on its way.

1

, если ваша основная деятельность распространяется BaseGameActivity как- общественного класса MainActivity расширяет BaseGameActivity

, то вы можете использовать getApiClient() где-нибудь в этой деятельности.

однако, если вы хотите получить доступ к getApiClient() от другой деятельности (или класс не-активности), а затем сделать this-

общественного класса MainActivity расширяет BaseGameActivity {

static GoogleApiClient myclient; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    myclient=getApiClient(); 
} 

...}

тогда вам просто нужно позвонить «MainActivity.myclient» вместо «getApiClient()» из других классов.

Смежные вопросы