从授权的Google帐户获取基本用户数据

时间:2016-04-27 23:04:05

标签: java android mobile

在这个Android应用程序中,我想从授权的谷歌帐户获取用户数据(电子邮件ID,名称等)。在这种情况下,我会缓存令牌以查看用户是否已登录,如果用户已登录,则会获取基本用户数据。

代码使用按钮登录。

    public void login(View view){

    if (loadUserTokenCache(mClient)){
        TextView tv1 = (TextView)findViewById(R.id.textView2);
        tv1.setVisibility(View.VISIBLE);
    }
    else {
        ListenableFuture<MobileServiceUser> mLogin = mClient.login(MobileServiceAuthenticationProvider.Google);

        Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() {
            @Override
            public void onFailure(Throwable exc) {
                createAndShowDialog("You must log in. Login Required", "Error");
            }
            @Override
            public void onSuccess(MobileServiceUser user) {
                createAndShowDialog(String.format(
                        "You are now logged in - %1$2s",
                        user.getUserId()), "Success");
                cacheUserToken(mClient.getCurrentUser());
            }
        });

    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用AccountsManager执行此操作。例如,这是您可以检索用户的Gmail的方式。

// Retrieve the gmail associated with the device that is being used.
    String gmailID = "";
    Account[] accounts = AccountManager.get(getActivity()).getAccountsByType("com.google");
    if(accounts.length > 0) {
        gmailID = accounts[0].name;
    }