android - 如何在 Xamarin.Android 应用程序上集成新的 Google 登录?

标签 android xamarin google-play-services google-signin

我正在尝试关注 Google's instructions关于如何将新的 Google 登录(不是旧的 Google+ 登录)添加到我的 Xamarin.Android 应用程序。我一直找不到支持新登录系统的正确 Google Play 服务 NuGet 包或 Xamarin 组件。

当我将以下代码添加到 Activity 中时,我收到“找不到类型或命名空间‘GoogleSignInOptions’。是否缺少程序集引用?”构建错误。

// Configure sign-in to request the user's ID, email address, and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();

以下是项目中包含的 Xamarin.GooglePlayServices NuGet 包:

<package id="Xamarin.GooglePlayServices.Ads" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Analytics" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.AppIndexing" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Base" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Basement" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Identity" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Location" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Maps" version="27.0.0.0" targetFramework="MonoAndroid50" />
<package id="Xamarin.GooglePlayServices.Plus" version="27.0.0.0" targetFramework="MonoAndroid50" />

Xamarin 尚不支持新的 Google 登录系统还是我遗漏了什么?

最佳答案

启用预发布 nugets 并搜索:

Xamarin.GooglePlayServices.Identity 29.0.0-beta1

packages.config:

<packages>
  <package id="Xamarin.Android.Support.v4" version="23.1.1.0" targetFramework="MonoAndroid44" />
  <package id="Xamarin.GooglePlayServices.Auth" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
  <package id="Xamarin.GooglePlayServices.Base" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
  <package id="Xamarin.GooglePlayServices.Basement" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
  <package id="Xamarin.GooglePlayServices.Identity" version="29.0.0-beta1" targetFramework="MonoAndroid44" />
</packages>

C# 版本 Integrating Google Sign-In into Your Android App

SignInButton button = FindViewById<SignInButton> (Resource.Id.sign_in_button);
gso = new GoogleSignInOptions.Builder (GoogleSignInOptions.DefaultSignIn)
    .RequestEmail ()
    .Build ();
mGoogleApiClient = new GoogleApiClient.Builder (this)
    .EnableAutoManage(mLoginFragment, failedHandler)
    .AddApi (Auth.GOOGLE_SIGN_IN_API)
    .Build ();
button.Click += delegate {
    signIn();
};

关于android - 如何在 Xamarin.Android 应用程序上集成新的 Google 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639015/

相关文章:

android - NanoHTTPD - 无法添加 gradle 依赖

android - 如何读取android进程命令的输出

c# - Xamarin.Forms 中 ListView 的 ItemTapped 和 ItemSelected 事件有什么区别?

exception - Xamarin System.Net.WebException 缺少 WebExceptionStatus.NameResolutionFailure

android - 使用 Google 登录 Android 获取用户的出生日期和性别

android - 加载图像后更新 RecyclerView 项目的高度?

android - 将单词添加到用户词典中并从词典中检索它们

c# - 是否可以将 Xaml 设计器或智能感知与 Xamarin.Forms 一起使用?

android - 在 Google Play 应用内结算中消费已取消的购买

Android LocationServices.checkLocationSettings 假阴性结果