2016-05-02 277 views
0

正在開發應用程序並使用Google SignIn。在iOS的API中,我能得到的姓氏和名字是這樣的:獲取在Android中使用Google SignIn API的用戶的名字和姓氏

let GoogleUser = GIDSignIn.sharedInstance().currentUser 
let firstName = googleAccount.profile.givenName 
let lastName = googleAccount.profile.familyName 

但Android的API中,我發現只有一個返回一個字符串用戶的全名getDisplayName()。我找不到任何只返回第一個或最後一個名字的方法。

The Google SignIn API for Android site

謝謝:)

回答

2

在Android中也有,

getFamilyName() 
getGivenName() 

轉寄此,

com.google.android.gms.plus.model.people.Person.Name

+0

此解決方案(這裏使用的解決方案[鏈接](HTTP簽字: //stackoverflow.com/a/33817833/4723532),但該解決方案使用Google Plus API,而不是Android的常規Google SignIn API。 Google SignIn API的iOS版本提供了名字和姓氏分隔的選項,所以我想在Android中做到這一點,而無需額外的API。但是,無論如何,謝謝:) –

+0

好的。標記爲答案,如果它可以幫助您 –

+0

@AvivAbramovich:如果您不想使用Plus API,請嘗試https://developers.google.com/identity/sign-in/android/backend-auth#using-a-google -api-client-library或http://android-developers.blogspot.com/2016/01/using-google-sign-in-with-your-server.html查看它們是否可以幫助 – BNK

0

試試這個

String fullname = "Sathish Kumar Jeyasankar"; 
String[] parts = fullname.split("\\s+"); 
String firstname = parts[0]; // Sathish 
String middlename = parts[1]; // Kumar 
String lastname = parts[2]; // Jeyasankar 
+0

假設用戶名喜歡「Sathish Kumar Jeyasankar」的意思是?它是如何工作的? –

+0

看到我編輯的答案。 –

+0

「烏薩馬本拉登」呢? 「bin laden」是最後一個名字(「bin」不是中間名)。這因語言而異,所以我不喜歡這些「低級」解決方案...... –

0

//之後我們調用這個函數 私人無效handleSignInResult(GoogleSignInResult結果){

//If the login succeed 
    if (result.isSuccess()) { 

     signInButton.setVisibility(View.GONE); 
     //Getting google account 
     GoogleSignInAccount acct = result.getSignInAccount(); 

     String name=acct.getDisplayName(); 

     String email=acct.getEmail(); 

     Log.d("namegoogle",name); 
     Log.d("emailgoogle",email); 
     edit_signin_emailid.setText(email); 

     String fullname = acct.getDisplayName(); 
     String[] parts = fullname.split("\\s+"); 
     Log.d("Length-->",""+parts.length); 
     if(parts.length==2) { 
      String firstname = parts[0]; 
      String lastname = parts[1]; 
      Log.d("First-->", "" + firstname); 
      Log.d("Last-->", "" + lastname); 
      AppController.setStringPref("firstnamebook", firstname); 
      AppController.setStringPref("lastnamebook", lastname); 

      Log.d("FirstApp", "" + AppController.getStringPref("firstnamebook")); 
      Log.d("LastApp", "" + AppController.getStringPref("lastnamebook")); 
     } 
     else if(parts.length==3){ 
      String firstname = parts[0]; 
      String middlename = parts[1]; 
      String lastname = parts[2]; 
      Log.d("First-->", "" + firstname); 
      Log.d("Last-->", "" + lastname); 
      AppController.setStringPref("firstnamebook", firstname); 
      AppController.setStringPref("lastnamebook", lastname); 
     } 


    } 
} 
相關問題