如何在Xamarin中获取GoogleApiClient实例?

时间:2016-05-15 00:01:10

标签: c# android xamarin xamarin.android

我想将我的xamarin android应用程序与google play服务排行榜和成就集成。我没有得到如何将代码从android documentation转换为c#。

   // Create the Google Api Client with access to the Play Game and Drive services.
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Games.API).addScope(Games.SCOPE_GAMES)
            .addApi(Drive.API).addScope(Drive.SCOPE_APPFOLDER) // Drive API
            .build();

    // ...

我尝试转换下面的内容

GoogleApiClient api = new GoogleApiClient.Builder(this)
           .AddApi(Android.Gms.Games.API)
           .Build();

在“Android.Gms.Games.API”

下发出错误

this堆栈溢出线程中提到的所有内容都没有工作。看起来大多数这些都被弃用了。

请建议是否有其他简单的方法可以与排行榜集成。

编辑:进行更改,现在提供以下错误。

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以通过以下方式访问GoogleClientAPI

var googleClientAPI = new GoogleApiClient.Builder(Application.Context).AddApi(XXX).Build();

使用阻塞连接作为快速测试的示例:

var client = new GoogleApiClient.Builder(Application.Context)
                                .AddApi(GamesClass.API)
                                .AddScope(GamesClass.ScopeGames)
                                .Build();
Task.Run(() => {
    client.BlockingConnect();
    System.Diagnostics.Debug.WriteLine(client.IsConnected);
});

注意:假设您注册了自己的应用,否则您将收到致命的开发人员错误...请参阅Play Connecting

由于您需要访问排行榜和成就,请确保已添加包:

  • Xamarin.GooglePlayServices.Games
  • Xamarin.GooglePlayServices.Identity

这些会自动包含.Base.Basement

  • 添加软件包后要查看的命名空间:
using Android.Gms.Common.Apis;
using Android.Gms.Games.LeaderBoard;
using Android.Gms.Games.Achievement;