2016-12-26 24 views
5

Tôi có một ứng dụng đơn giản với xác thực google và tôi muốn hiển thị thông báo chào mừng. Nếu tài khoản email là j [email protected], tôi muốn có một Toast với "Chào mừng John Smith!" Tôi có thể làm như thế nào?Làm cách nào để truy xuất tên và họ của tài khoản Google mà tôi đã đăng nhập, trong Android?

Đây là mã của tôi:

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

Tôi cố gắng để sử dụng mã này, nhưng tôi chỉ nhận được tên người dùng, không phải là tên đầu tiên và cuối cùng.

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

Cảm ơn bạn trước!

Trả lời

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

Bạn có thể tìm thêm về GoogleSignInAccount: https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInAccount

+0

Cuối cùng tôi đã làm được. Câu trả lời này đã giúp tôi. Cảm ơn! –

0

câu trả lời thay đổi nội dung rồi -

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 đại diện cho DISPLAY_NAME.

Nhưng tính năng này chỉ khả dụng từ ICS trở đi. Thêm quyền READ_PROFILE và READ_CONTACTS trong AndroidManifest của bạn.

+0

Cảm ơn, nhưng như tôi đã nói, tôi sử dụng mã này . Tôi chỉ nhận được tên người dùng. Tôi cần cái tên và họ. –

+0

Ông chỉ cần tên đầu tiên không phải toàn bộ tên với id. – sukumar

+0

@AlexM. xem câu trả lời đã chỉnh sửa. Và hãy chấp nhận câu trả lời nếu nó giúp bạn bằng mọi cách. Cảm ơn :) – iamgopal

Các vấn đề liên quan