2014-02-15 131 views
1

我剛剛添加谷歌播放服務排行榜到我的遊戲,但也有一些問題。我無法啓動排行榜活動。這裏是我的代碼沒有getApiClient()在谷歌播放遊戲服務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

Games APIs doc指向在Android樣本項目BaseGameUtils庫這個方法以及類似的方法,如getApiClientBuilder():

「如果你的遊戲要將其他Google Play服務API或範圍添加到由BaseGameActivity管理的GoogleApiClient,它可以通過調用BaseGameUtils中的GameHelper對象的getApiClientBuilder()來完成此操作。

我還沒有看到BaseGameUtils on github中的那些方法,我猜測他們會在某個時候更新。

UPDATE:看起來像BaseGameUtils中的GameHelper更新是on its way

1

如果您的主要活動來延長BaseGameActivity喜歡 - 公共類MainActivity擴展BaseGameActivity

那麼你可以使用getApiClient()在該活動的任何地方。

但是如果您要訪問getApiClient()的另一項活動(或非活動類)

然後做這個 -

公共類MainActivity擴展BaseGameActivity {

static GoogleApiClient myclient; 

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

...}

那麼你只需要調用「MainActivity.myclient」 而不是其他類中的「getApiClient()」。

相關問題