2016-04-27 81 views
0

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

该代码使用一个按钮进行登录。

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

    } 
} 

回答

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; 
    }