我刚刚添加谷歌播放服务排行榜到我的游戏,但也有一些问题。我无法启动排行榜活动。这里是我的代码没有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