如何将新的Google Sign-In集成到Xamarin.Android应用程序中? [英] How do you integrate the new Google Sign-In on a Xamarin.Android app?

查看:194
本文介绍了如何将新的Google Sign-In集成到Xamarin.Android应用程序中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图遵循 Google的说明,了解如何将新的Google Sign-In(不是旧的Google+登录)添加到我的Xamarin.Android应用程序中。对于我而言,我无法找到支持新登录系统的正确Google Play服务NuGet包或Xamarin组件。



当我将以下代码添加到该活动,我得到无法找到类型或名称空间'GoogleSignInOptions'。您是否缺少程序集引用?

  // //配置登录以请求用户的ID,电子邮件地址和基本
//个人资料。 ID和基本配置文件包含在DEFAULT_SIGN_IN中。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail()。build();

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

 < package id =Xamarin.GooglePlayServices.Adsversion =27.0.0.0targetFramework =MonoAndroid50/ > 
< package id =Xamarin.GooglePlayServices.Analyticsversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.AppIndexingversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.Baseversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.Basementversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.Identityversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.Locationversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.Mapsversion =27.0.0.0targetFramework =MonoAndroid50/>
< package id =Xamarin.GooglePlayServices.Plusversion =27.0.0.0targetFramework =MonoAndroid50/>

Xamarin还不支持新的Google Sign-In系统吗?还是我错过了一些东西?

解决方案

启用预发布的工具并搜索: Xamarin.GooglePlayServices.Identity 29.0.0-beta1



packages.config:



 < packages> 
< package id =Xamarin.Android.Support.v4version =23.1.1.0targetFramework =MonoAndroid44/>
< package id =Xamarin.GooglePlayServices.Authversion =29.0.0-beta1targetFramework =MonoAndroid44/>
< package id =Xamarin.GooglePlayServices.Baseversion =29.0.0-beta1targetFramework =MonoAndroid44/>
< package id =Xamarin.GooglePlayServices.Basementversion =29.0.0-beta1targetFramework =MonoAndroid44/>
< package id =Xamarin.GooglePlayServices.Identityversion =29.0.0-beta1targetFramework =MonoAndroid44/>
< / packages>





  SignInButton按钮= 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 + =委托{
signIn();
};


I am attempting to follow Google's instructions on how to add the new Google Sign-In (not the old Google+ Sign-In) to my Xamarin.Android app. For the life of me, I cannot find the correct Google Play Services NuGet package or Xamarin component that supports the new sign-in system.

When I add the following code to the activity, I get "The type or namespace 'GoogleSignInOptions' could not be found. Are you missing an assembly reference?" build error.

// 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();

Here are the Xamarin.GooglePlayServices NuGet packages that are include in the project:

<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" />

Is the new Google Sign-In system not yet supported on Xamarin or am I missing something?

解决方案

Enable pre-release nugets and search for:

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# version of 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();
};

这篇关于如何将新的Google Sign-In集成到Xamarin.Android应用程序中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆