1

我正在尝试找到一个很好的文档示例,说明如何使用谷歌帐户在我的应用程序中执行登录。

也许我找错地方了,但我在 android sdk 文档中找不到任何东西。据我了解它是谷歌服务的一部分,但仍然有问题找到示例。

如果用户在设备上配置了超过 1 个 google 帐户以弹出并询问要使用哪个帐户,我还需要支持。

然后在将来加载我的应用程序时,我会自动登录。

谁能指出我正确的方向,或者没有可用的例子?

谢谢

4

1 回答 1

2

您可能想使用本指南:

https://developers.google.com/+/mobile/android/sign-in

来自指南:您必须创建一个 Google API 控制台项目并初始化 PlusClient 对象

将 Google+ 登录按钮添加到您的应用

在应用程序的布局中添加 SignInButton:

<com.google.android.gms.common.SignInButton
    android:id="@+id/sign_in_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

在 Activity.onCreate 处理程序中使用请求的可见活动初始化 mPlusClient。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mPlusClient = new PlusClient.Builder(this, this, this)
            .setVisibleActivities("http://schemas.google.com/AddActivity", "http://schemas.google.com/BuyActivity")
            .build();
}

在 Android 活动中,注册按钮的 OnClickListener 以在单击时登录用户:

findViewById(R.id.sign_in_button).setOnClickListener(this);

用户单击登录按钮后,您应该开始解决 mConnectionResult 中保存的任何连接错误。可能的连接错误包括提示用户选择帐户和授予对您应用程序的访问权限。

@Override
public void onClick(View view) {
    if (view.getId() == R.id.sign_in_button && !mPlusClient.isConnected()) {
        if (mConnectionResult == null) {
            mConnectionProgressDialog.show();
        } else {
            try {
                mConnectionResult.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR);
            } catch (SendIntentException e) {
                // Try connecting again.
                mConnectionResult = null;
                mPlusClient.connect();
            }
        }
    }
}

当用户成功登录后,您的 onConnected 处理程序将被调用。此时,您可以检索用户的帐户名称或发出经过身份验证的请求。

@Override
public void onConnected(Bundle connectionHint) {
    mConnectionProgressDialog.dismiss();
    Toast.makeText(this, "User is connected!", Toast.LENGTH_LONG).show();
}
于 2013-09-09T20:31:40.863 回答