2016-12-26 78 views
5

我有一個簡單的應用程序與谷歌認證,我想顯示一個歡迎消息。如果電子郵件帳戶是j [email protected],我想要一個Toast「歡迎John Smith!」我該怎麼做?如何在Android中檢索我登錄的Google帳戶的名和姓?

這是我的代碼:

if (user == null) { 
     startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().build(), SIGN_IN_REQUEST_CODE); 
    } else { 
     Toast.makeText(MainActivity.this, "Welcome " + userName, Toast.LENGTH_SHORT).show(); 
    } 

我試圖用這個代碼,但我得到的只有用戶名,而不是第一個和最後一個名字。

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); 
Account[] list = manager.getAccounts(); 

在此先感謝!

回答

2

onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent result) { 
    if (requestCode == GOOGLE_REQUEST_CODE) { // Google + callback 
     handleSignInResult(Auth.GoogleSignInApi.getSignInResultFromIntent(result)); 
     } 
} 

handleSignInResult

private void handleSignInResult(GoogleSignInResult googleSignInResult) { 
    if (googleSignInResult.isSuccess()) { 
     GoogleSignInAccount acct = googleSignInResult.getSignInAccount(); 
     if (acct != null) { 
      //get the data you need from GoogleSignInAccount 
      } 
     } else { 
      Toast.makeText(context.getApplicationContext(), "error", Toast.LENGTH_SHORT).show(); 
     } 
    } 

你可以找到更多關於GoogleSignInAccounthttps://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInAccount

+0

我終於做到了。這個答案幫了我。謝謝! –

0

好編輯答案 -

Cursor c = activity.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null); 
int count = c.getCount(); 
String[] columnNames = c.getColumnNames(); 
boolean b = c.moveToFirst(); 
int position = c.getPosition(); 
if (count == 1 && position == 0) { 
for (int j = 0; j < columnNames.length; j++) { 
    String columnName = columnNames[j]; 
    String columnValue = c.getString(c.getColumnIndex(columnName))); 
    ... 
    //Use the values 
    } 
} 
c.close(); 

J = 0表示DISPLAY_NAME。

但是這隻能從ICS開始提供。在您的AndroidManifest中添加READ_PROFILE和READ_CONTACTS權限。

+0

謝謝,但正如我已經說過,我用這個代碼。我只獲取用戶名。我需要第一個和最後一個名字。 –

+0

他只需要名字不是帶ID的全名。 – sukumar

+0

@AlexM。看到編輯的答案。如果以任何方式幫助你,請接受答案。謝謝:) – iamgopal

相關問題