9

Is there a way to get the firstname and lastname of Android phone owner? I've search the internet but I have no luck. I stumbled upon this question in Stackoverlow but this is getting firstname and lastname of all contacts. What I need is just to get the owner's firstname and lastname.

Community
  • 1
  • 1
silent_coder14
  • 583
  • 2
  • 10
  • 38

3 Answers3

23

I think this is available ICS onwards only - Look at this for more info http://android-codelabs.appspot.com/resources/tutorials/contactsprovider/ex1.html

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

Android includes a personal profile that represents the device owner - this profile is known as the "Me" profile and is stored in the ContactsContract.Profile table. You can read data from the user's profile so long as you

add the READ_PROFILE and READ_CONTACTS permission in your AndroidManifest.xml.

The most relevant fields for you are the DISPLAY_NAME column from the Contact and possibly the StructuredName fields

Ushal Naidoo
  • 2,704
  • 1
  • 24
  • 37
Vrashabh Irde
  • 14,129
  • 6
  • 51
  • 103
3

Try this:

final AccountManager manager = AccountManager.get(this);
final Account[] accounts = manager.getAccountsByType("com.google");
final int size = accounts.length;
String[] names = new String[size];
for (int i = 0; i < size; i++) {
  names[i] = accounts[i].name;
}
daniel
  • 1,435
  • 9
  • 16
3

I Had search on this thing and get some likes hope it will helpful to you.

Community
  • 1
  • 1
Chintan Khetiya
  • 15,962
  • 9
  • 47
  • 85