我剛剛添加谷歌播放服務排行榜到我的遊戲,但也有一些問題。我無法啓動排行榜活動。這裏是我的代碼沒有getApiClient()在谷歌播放遊戲服務BaseGameUtils
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(getApiClient(), "leaderboard_id"), 5000);
問題是沒有任何getApiClient()方法。任何想法?
我剛剛添加谷歌播放服務排行榜到我的遊戲,但也有一些問題。我無法啓動排行榜活動。這裏是我的代碼沒有getApiClient()在谷歌播放遊戲服務BaseGameUtils
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(getApiClient(), "leaderboard_id"), 5000);
問題是沒有任何getApiClient()方法。任何想法?
您必須使用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) {}
}
的Games APIs doc指向在Android樣本項目BaseGameUtils庫這個方法以及類似的方法,如getApiClientBuilder():
「如果你的遊戲要將其他Google Play服務API或範圍添加到由BaseGameActivity管理的GoogleApiClient,它可以通過調用BaseGameUtils中的GameHelper對象的getApiClientBuilder()來完成此操作。
我還沒有看到BaseGameUtils on github中的那些方法,我猜測他們會在某個時候更新。
UPDATE:看起來像BaseGameUtils中的GameHelper更新是on its way。
如果您的主要活動來延長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()」。
這有什麼用? – Andrew