是否可以在不安装 Google Play 游戏应用程序的情况下使用 Android 排行榜?

Posted

技术标签:

【中文标题】是否可以在不安装 Google Play 游戏应用程序的情况下使用 Android 排行榜?【英文标题】:Is it possible to use Android Leaderboards without having to install Google Play Games app? 【发布时间】:2019-03-05 19:16:31 【问题描述】:

我实现了 android 排行榜:https://developers.google.com/games/services/android/leaderboards

在我使用带有 BaseGameUtils 的排行榜之前,它并没有强制用户安装 Google Play 游戏。但是现在迁移到新的排行榜后,它会提示一个对话框,强制在设备中安装 Google Play 游戏应用以显示排行榜。

这是显示排行榜的简单代码:

private void showLeaderboard() 
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() 
        @Override
        public void onSuccess(Intent intent) 
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        
      );

【问题讨论】:

【参考方案1】:

基于leaderboard API的文档:

在开始使用 排行榜 API 编写代码之前:

按照Set Up Google Play Services SDK 指南中有关安装和设置您的应用以使用 Google Play 游戏服务的说明进行操作。 按照Google Play Console 中的说明定义您希望游戏显示或更新的排行榜 指南。 下载并查看Android samples 中的排行榜代码示例 页面。 熟悉Quality Checklist. 中描述的建议

这个 意味着由您决定应用程序中的适当位置 验证 Google Play 服务版本。如果 Google 服务是 您的应用程序始终需要它,您可能希望在您的应用程序 应用程序首次启动。如果它是可选的,您可以检查版本 仅当用户导航到您应用的该部分时。

Another approach:

是使用isGooglePlayServicesAvailable() 方法。 您将获得对提供此方法的单例对象的引用 使用GoogleApiAvailability.getInstance()。你可以调用这个方法 在主要活动的onResume() 方法中。如果结果代码是 SUCCESS,那么 Google Play services APK 是最新的,你可以 继续建立连接。但是,如果结果代码是 SERVICE_MISSING,SERVICE_VERSION_UPDATE_REQUIRED,或SERVICE_DISABLED, 然后用户需要安装更新。在这种情况下,调用 getErrorDialog() 方法并将结果错误代码传递给它。方法 返回一个您应该显示的对话框,它提供了一个适当的 有关错误的消息并提供一个操作,让用户 Google Play 商店安装更新。

【讨论】:

以上是关于是否可以在不安装 Google Play 游戏应用程序的情况下使用 Android 排行榜?的主要内容,如果未能解决你的问题,请参考以下文章

Google Play商店为预注册的游戏和应用提供自动安装功能

更新 Android 应用(无需访问 Google Play 商店)

为啥打开google play就闪退

在不发布应用的情况下添加 Google Play“安全元数据”

我可以在安装在 Google Play 商店之外的应用上使用 Google Play 服务吗?

Google Play 游戏:向其他玩家发送消息