Android 具有多个活动的Google登录流
我有一个包含3个活动的应用程序:登录活动、主要活动和详细活动 登录活动使用Google登录来获取用户的帐户(令牌id和电子邮件)。 主要活动和详细活动都需要Android 具有多个活动的Google登录流,android,google-signin,Android,Google Signin,我有一个包含3个活动的应用程序:登录活动、主要活动和详细活动 登录活动使用Google登录来获取用户的帐户(令牌id和电子邮件)。 主要活动和详细活动都需要GoogleSignInAccount 我不希望应用程序总是在登录活动时启动,并在用户启动应用程序时透明地重新登录 我不想将令牌id和用户电子邮件存储在共享首选项上,我更愿意在我的应用程序中的任何地方直接操作GoogleSignInAccount 处理此登录场景的正确流程是什么?我是否应该尝试在每个屏幕上都进行一次搜索,或者是否有更好的方法来
GoogleSignInAccount
我不希望应用程序总是在登录活动时启动,并在用户启动应用程序时透明地重新登录
我不想将令牌id和用户电子邮件存储在共享首选项上,我更愿意在我的应用程序中的任何地方直接操作GoogleSignInAccount
处理此登录场景的正确流程是什么?我是否应该尝试在每个屏幕上都进行一次搜索,或者是否有更好的方法来存储和检索谷歌签名帐户
?是的,您可以为此使用
如果您正在UI线程上查找GoogleSignInAccount
,下面是异步版本:
Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient).setResultCallback(
new ResultCallback<GoogleSignInResult>() {
@Override
public void onResult(@NonNull GoogleSignInResult result) {
if (googleSignInResult.isSuccess() {
GoogleSignInAccount gsa = googleSignInResult.getSignInAccount();
}
}
});
查看以了解更多详细信息,包括使用Google帐户ID令牌进行后端身份验证或API调用。您还可以将Google SignInAccount作为额外的意图输入传递:
GoogleSignInAccount acct = result.getSignInAccount();
Intent intent = new Intent(this, AnotherActivity.class);
intent.putExtra("singedInAccount", acct);
startActivity(intent);
并在onCreate()中接收另一个的活动方法,如下所示:
getIntent().getParcelableExtra("singedInAccount");
请注意,就实现而非可序列化接口而言,必须使用getParcelableExtra()而不是getSerializableExtra()
getIntent().getParcelableExtra("singedInAccount");