【问题标题】:Integrating Google API into libgdx project将 Google API 集成到 libgdx 项目中
【发布时间】:2019-04-25 18:09:39
【问题描述】:

我从这个问题LibGDX and the GoogleApiClient setup/integration (first time) 中遵循了 Aryan 的建议,但似乎无法让它发挥作用。

我创建了 ActionResolver 并将它与 GameHelpListener 一起实现到我的 AndroidLauncher 中,但是行 gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES); 给我一个错误,说 GameHelper 不能应用于这个(AndroidLauncher)......我已经为此苦苦挣扎了好几天,似乎无处可去。任何帮助,将不胜感激。

这是我的 AndroidLauncher 代码

public class AndroidLauncher extends AndroidApplication implements AdHandler, GameHelper.GameHelperListener, ActionResolver {

// 一些代码

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

// 更多代码

    if (gameHelper == null) {
        gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
        gameHelper.enableDebugLog(true);
    }
    gameHelper.setup(this);

// 更多代码

}

我的主类扩展了游戏,所以我假设这段代码需要在 AndroidLauncher 中。我错了吗?

谢谢

【问题讨论】:

  • 以前我们在项目中使用BaseGamUtils 模块,而身份验证是谷歌游戏服务的一部分。
  • 感谢您的快速回复。我的项目中实际上有 BaseGameUtils。但我可能没有正确使用它......整个 Google API 业务让我头疼了大约一周。
  • 我认为它有效!我终于收到了要签到的消息!现在我必须自定义代码,但它似乎已经完成了这项工作......再次感谢伙计,我非常感谢您的帮助!
  • 不客气,编码快乐..:)
  • 使用 libGDX 的 Gameservices 扩展来集成 Google Play 游戏,从而节省您的精力。 GitHub 仓库在这里:github.com/MrStahlfelge/gdx-gamesvcs

标签: android google-api libgdx


【解决方案1】:

Question link 在上述问题中使用的是旧版 Google Play 服务。

之前我们使用BaseGameUtils 实用程序模块来获取排行榜和成就。 (play service version <11.6.2)

在最新版本的google play game service 中,不需要BaseGameUtils。在您的 android 模块中注入以下依赖项并遵循此thread

implementation "com.google.android.gms:play-services-games:${gms_library_version}"
implementation "com.google.android.gms:play-services-auth:${gms_library_version}"

【讨论】:

  • 还有一个问题...我希望能够从我的主菜单屏幕呼叫startSignInIntent()signOut()。我尝试使用app.actionResolver.startSignInIntent();,但它什么也没做。我目前可以调用 startSignInIntent 的唯一方法是通过 ApplicationLauncher onCreate... 我的代码中还有一个 AdHandler,所以我尝试在广告播放时包含 signOut(),但随后我收到消息说我无法访问静态上下文中的方法...
  • 先退出再调用starSigninintent,同时检查接口是否有问题
  • 你是对的。这是我的接口中的一个错误......它现在可以工作了!再次感谢!
  • 我又卡住了...我实现了成就并且它们可以工作,但是当成就解锁时我没有收到通知...public void unlockAchievement(int achievementNum) { if(isSignedIn()) { if(achievementNum==1) { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .unlock(getString(R.string.achievement_baby_steps)); }}当我检查成就时,它们已解锁,但从来没有弹出窗口告诉我它已解锁。我假设我需要一段代码来告诉谷歌发送通知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2015-02-09
相关资源
最近更新 更多